Python 如何将默认参数与任意参数排序
Python希望在参数列表的末尾出现任意参数,但如果我们有一个默认参数,并为其赋值,则在该参数之前出现任意参数。 如何传递参数以匹配参数。 问题是,不必为sales_man参数传递任何参数,并且必须打印unknownPython 如何将默认参数与任意参数排序,python,Python,Python希望在参数列表的末尾出现任意参数,但如果我们有一个默认参数,并为其赋值,则在该参数之前出现任意参数。 如何传递参数以匹配参数。 问题是,不必为sales_man参数传递任何参数,并且必须打印unknown def pizzas(size, sales_man='unknown', *toppings): print(f'your order is accepted for the pizza size: {size} by {sales_man}'
def pizzas(size, sales_man='unknown', *toppings):
print(f'your order is accepted for the pizza size: {size} by {sales_man}'
f'\nPlease check your toppings as below: ')
for topping in toppings:
print(f'- {topping}')
pizzas('medium', 'cheesy', 'Bacon', 'pepporni', 'Pineapple')
将def更改为:
def披萨(大小,*配料,销售情况_man='未知)
然后,sales\u man
可以作为关键字参数而不是位置参数传递:
pizzas('medium'、'cheesy'、'Bacon'、'pepperni'、'菠萝')
输出:
your order is accepted for the pizza size: medium by unknown
Please check your toppings as below:
- cheesy
- Bacon
- pepporni
- Pineapple
your order is accepted for the pizza size: medium by Man(...)
输入:
pizzas('medium'、'cheesy'、'Bacon'、'pepperni'、'菠萝'、sales\u man=“man”)
输出:
your order is accepted for the pizza size: medium by unknown
Please check your toppings as below:
- cheesy
- Bacon
- pepporni
- Pineapple
your order is accepted for the pizza size: medium by Man(...)
你不能那样做。每次调用函数时都必须提供该默认值(这违背了以默认值开头的目的),或者将默认参数移动到定义的末尾,并在调用中明确提及它,如下所示:
def a(b, *c, d=5):
...
a(1, 2,3,4,5, d=6)
你不能那样做。你可以试试这个--- 或 将您的方法签名更改为--def pizzas(大小、*toppings、sales_man='unknown'): 如果您想通过销售人员,那么您可以将其称为
pizzas('medium','cheesy', 'Bacon', 'pepporni', 'Pineapple', sales_man="Pawan")
pizzas('medium','cheesy', 'Bacon', 'pepporni', 'Pineapple')
或者,如果您不想通过销售人员,那么您可以将其称为
pizzas('medium','cheesy', 'Bacon', 'pepporni', 'Pineapple', sales_man="Pawan")
pizzas('medium','cheesy', 'Bacon', 'pepporni', 'Pineapple')