python 位置参数,默认参数,可变参数,关键字参数,命名关键字参数

本文详细介绍了Python中的位置参数、默认参数、可变参数、关键字参数和命名关键字参数。通过示例展示了它们的使用方法,包括默认参数的陷阱及如何避免,以及各种参数的组合顺序。
摘要由CSDN通过智能技术生成

位置参数

是最普通的参数,python解释器将每个参数根据出现在调用中的顺序,对号入座:

>>> def score(x,y):
...     return x*y
...
>>> print(score(1,2))
2

多了少了都不行:
>>> print(score(1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: score() missing 1 required positional argument: 'y'

默认参数

默认参数顾名思义,参数带有默认值,在调用的时候,如果不指定参数值,则使用默认值:

>>> def score_default(x,y=0):
...     return x*y
...
>>> print(score_default(1))
0
>>> print(score_default(1,2))
2

默认参数与位置参数同时出现时,需要先定义位置参数,再定义默认参数。从思想上来说,如果默认参数在前,位置参数再后,那还有必要定义默认参数吗:
>>> def score_default(x=0,y):
...     return x*y
...
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument

即使是(位置参数,默认参数,位置参数),这样也是不行的:
>>> def score_default(x,y=0,z):
...     return x*y
...
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
>>>

默认参数有坑,要特别注意:

>>> def score_default_set(x,s=set()):
...         s.add(x)
...         return s
...
>>> print(score_default_set(1)
... )
{1}
>>> print(score_default_set(2))
{1, 2}
>>> print(score_default_set(3))
{1, 2, 3}
看到了吧&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值