繁体   English   中英

如何在Python中混合多个和可选参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM