美文网首页
python_函数参数问题

python_函数参数问题

作者: 射手再见蓝天575 | 来源:发表于2018-01-14 00:14 被阅读0次
    • 位置参数

      位置参数就是普通的参数变量按一定顺序排列,在定义的时候只给变量名,在调用函数时,输入的参数值也要按照这个顺序输入:
      • 定义:
      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
      
      注意:当命名关键字前有可变参数时,*分隔不需要
    • 参数排列顺序

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

    相关文章

      网友评论

          本文标题:python_函数参数问题

          本文链接:https://www.haomeiwen.com/subject/stotoxtx.html