Python newb在这里。假设您有一个类似
def myfunc(a = "apple", *args):
print(a)
for b in args:
print(b + "!")
如何在不更改默认参数的情况下将一组未命名的参数传递给* args?
我想做的是
myfunc(,"banana", "orange")
并获得输出
apple
banana!
orange!
但这不起作用。
(我确定之前已经讨论过了,但是我所有的搜索都为空)
在Python 3中,您可以通过更改a
为仅关键字参数来实现:
>>> def myfunc(*args, a="apple"):
print(a)
for b in args:
print(b + "!")
...
>>> myfunc("banana", "orange")
apple
banana!
orange!
>>> myfunc("banana", "orange", a="watermelon")
watermelon
banana!
orange!
在Python 2中,您必须执行以下操作:
>>> def myfunc(*args, **kwargs):
a = kwargs.pop('a', 'apple')
print a
for b in args:
print b + "!"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句