我使用Python 3.6.0与两个不同的参数数目(*参数)和参数的默认值功能?
考虑下面的代码:
def foo(a, b='default-value', *args):
print('first argument=' + a)
print('default-value argument=' + b)
print('rest of arguments: ')
for arg in args:
print(arg)
以下函数调用:
foo('arg1','arg2','arg3','arg4')
结果与:
first argument=arg1
default-value argument=arg2
rest of arguments:
arg3
arg4
但我预期:
first argument=arg1
default-value argument=default-value
rest of arguments:
arg2
arg3
arg4
是否有可能创建一个可同时接收不同数量的参数,并在Python默认值参数的函数?我如何达到我期待的结果?
鉴于你的逻辑......究竟如何你希望能够通过任何价值'B',如果你似乎希望它被忽略,因为它已经有一个值? – deceze
我认为,在这种情况下,我只想把它传递明确,如:'FOO(“ARG1”,B =“东西”,“ARG2”,“ARG3”)' –