3.12 Python只有关键字的参数

如果我们想要指定特定的关键字参数作为只有关键字的参数,而不是位置参数,它们可以被声明在星号参数后。例如:

    
    
  1. def total(initial=5, *numbers, extra_number):
  2. count = initial
  3. for number in numbers:
  4. count += number
  5. count += extra_number
  6. print(count)
  7. total(10, 1, 2, 3, extra_number=50)
  8. total(10, 1, 2, 3)
  9. # Raises error because we have not supplied a default argument value for 'extra_number'
输出:
66
Traceback (most recent call last):
  File "keyword_only.py", line 12, in <module>
total(10, 1, 2, 3)
TypeError: total() needs keyword-only argument extra_number

它是如何工作的:
在星号参数后面声明参数,结果是只有关键字参数,如果这些参数没有提供一个默认值,那么如果关键字参数没有提供值,函数调用会产生错误,如上所示。

注意,+=的用法是操作符的缩写,因此,x = x + y,你可以写成x += y。

如果你不需要星号参数,但还想使用只有关键字参数,那么只需简单使用一个星号而不使用任何名字,例如,def total(initial=5, *, extra_number)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值