我使用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」)' –