[英]How can I mix multiple and optional arguments in Python?
我想用默认和多个参数编写函数。 现在我有这样的想法:
def make_pizza(size=10, *toppings):
for t in toppings:
print("-",t)
print('Pizza has', size, 'cm')
后来我试着打电话:
make_pizza(30, 'pepperoni')
make_pizza('pepperoni')
make_pizza(50, 'cheese', 'cucumber', 'chilli')
但结果看起来很糟糕:
- pepperoni Pizza has 30 cm Pizza has pepperoni cm - cheese - cucumber - chilli Pizza has 50 cm
如果我想在第三行打印'10'而不是意大利辣香肠,我该怎么办?
好吧,既然您使用的是Python 3,最简单的方法是将size
设置为仅限关键字的参数 :
def make_pizza(*toppings, size=10):
for t in toppings:
print("-",t)
print('Pizza has', size, 'cm')
注意size=10
必须遵循 *toppings
。
现在,要指定显式命名所需的size
:
make_pizza('pepperoni')
make_pizza('pepperoni', size=30)
另一种方法是检查的类型 size
,如果是说的一个实例numbers.Number
,则假设其大小,否则是摘心,并且应该被添加到年初toppings
元组...和大小应重置为默认值。
或者您可以随时指定大小。
但是我更喜欢仅关键字参数,因为这正是它们要解决的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.