Python 如何将默认参数与任意参数排序

Python 如何将默认参数与任意参数排序,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}'

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}'
               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')