在一个函数中使用* arg和可选参数

时间:2016-07-06 13:44:08

标签: python arguments

如何将* arg和变量与defaull值一起使用?

def my_fun(a, b = True, *arg):
    print (a)
    print (b)
    print (arg)

my_fun(1,2,3)

我想要的是

1
True
(2,3,)

我得到的是

1
2
(3)

2 个答案:

答案 0 :(得分:6)

如果你在关键字参数之前捕获了所有的参数:

>>> def my_fun(*arg, a=1, b=2):
...     print (a)
...     print (b)
...     print (arg)
...
>>> my_fun(3,4,5)
1
2
(3, 4, 5)

ab可以通过将它们作为命名参数传递来修改:

>>> my_fun(3,4,5, a=10, b=11)
10
11
(3, 4, 5)

答案 1 :(得分:1)

你要求的是没有意义的。

如果我遵循您的逻辑,无论您如何称呼您的功能,ab始终为12