python_函数参数问题

  • 位置参数

    位置参数就是普通的参数变量按一定顺序排列,在定义的时候只给变量名,在调用函数时,输入的参数值也要按照这个顺序输入:
    • 定义:
    def get_reduce(x,y):
              return x-y
    
    • 调用:
    >>> get_reduce(98,88)
    10
    
    注意:调用时位置参数为必填参数
  • 默认参数

    默认参数就是在定义函数的时候给该参数一个默认值,当调用给函数时不给该参数的值,默认使用默认值:
    • 定义:
    >>> def get_lifang(x,n=3):
    ...             sum=1
    ...             while n>0:
    ...                     n-=1
    ...                     sum*=x
    ...             return sum
    
    • 调用:
    >>> get_lifang(3)
    27
    
    注意:默认参数尽量不要用list,因为它是可变对象,当多次调用时,这次会调用上次产生的值,如果需要可以将可变对象的默认值定义为None
  • 可变参数

    参数数量可以变化的参数,在定义时用*标识:
    • 定义:
    >>> def get_sum(*n):
    ...     sum=0
    ...     for i in n:
    ...             sum+=i
    ...     return sum
    ...
    
    • 一般参数调用:
    >>> get_sum(55,77,88)
    220
    
    • 特殊参数调用:(当参数为多个元素的集合时,用*标注,如下:)
    >>> l=[99,34,66,44]
    >>> get_sum(*l)
    243
    
    实质上,参数在函数内部是以一个tuple的元素存在
  • 关键字参数

    关键字参数针对的是dict,定义的时候用**标识
    • 定义:
    >>> def get_info(**kw):
    ...             if 'body' in kw:
    ...                     print('system is bad')
    ...             elif 'peter' in kw:
    ...                     print(kw['peter'])
    ...
    
    • 调用:
    >>> d={'peter':88,'ami':77,'baby':99}
    >>> get_info(**d)
    88
    
  • 命名关键字参数

    命名关键字参数是在关键字参数的基础上,硬性要求关键字的名字,定义时用*作为参数将其他关键字隔开
    • 定义:
    >>> def to_info(p,c,*,course,age):
    ...     print(p,c,course,age)
    ...
    
    • 调用:
    >>> to_info('peter',99,course='English',age=22)
    peter 99 English 22
    
    注意:当命名关键字前有可变参数时,*分隔不需要
  • 参数排列顺序

([ 位置参数],[默认参数],[可变参数],[命名关键字参数],[关键字参数])
需要说明的是:它们可以组合使用,例如即是默认参数,又是命名关键字参数

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 6,004评论 0 3
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 5,785评论 0 5
  • 函数的参数 转瞬一年,又快到动物们交...(*/∇\*),嘛~拖更无限好... 咳咳,去年说的函数的定义时有包含...
    Raimond阅读 3,523评论 0 0
  • 看完电影,真的有种隐隐的恶心感,真的有点恶心,上次看电影觉得恶心还是《林中小屋》最后那个血腥的场面。 有点无法理解...
    暮色言落阅读 3,134评论 2 0
  • 早上还好买了早餐(一个馒头)再去工作。 上午和普通话老师约好明天早上7点半说命题说话。回到办公室工作时老师给了牛奶...
    逆风追梦人阅读 1,837评论 0 0

友情链接更多精彩内容