0
点赞
收藏
分享

微信扫一扫

关于Python函数的参数详解

NicoalsNC 2022-03-11 阅读 43

函数定义支持可变数量的参数

1、 默认值参数

为参数指定默认值是非常有用的方式,调用函数时可以使用比定义时更少的参数

>>> def ask_ok(prompt,retries = 4,reminder:'abcd'):
...     ..........
...

调用此函数的方式:

  • 只给出必选参数:
>>> ask_ok('hello')
  • 给出一个可选参数:
>>> ask_ok('hello',2)
  • 给出所有实参
>>> ask_ok('hello',2,'world')

2、默认值只计算一次。默认值为列表、字典或类实例等可变对象时,会产生与该规则不同的结果

例如:
>>> def stu(a,L = []):
...     L.append(a)
...     return L
...
>>> print(stu(1))
[1]
>>> print(stu(2))
[1, 2]
>>> print(stu(3))
[1, 2, 3]
>>>
正确写法:

>>> def stu(a,L=None):
...     if L is None:
...             L=[]
...     L.append(a)
...     return L

3、关键字参数

kwarg = value 形式的参数也可用于调用函数

4、特殊参数

函数中定义未使用/和*时,参数可以按位置或关键字传递给函数

  • 仅未知参数
  • 仅限关键字参数:
>>> def stu_arg(arg):

>>> def stu_arg(arg,/):

>>> def stu_arg(*,arg):

>>> def stu_arg(pos_only,/,stand,*,kwd_only):


仅限位置形参参-------让用户无法使用形参名,防止未来修改形参名时造成破坏性的API变动
关键字参数---------显示名称可以让函数定义更容易理解,防止用户依赖传 递位置参数

5、解包实参列表

  • 函数调用要求独立的位置参数,且实参在列表或元组里时,要求执行相反的操作
>>> args = [1,2,3]
>>> List(range(*args))
  • 字典可以用**操作符传递关键字参数
>>> d = {'name':'zxb','age':'18','sex':'man'}
>>> parrot(**d)

举报

相关推荐

0 条评论