2015-11-04 111 views
2

是否可以在同一個函數定義中將函數參數的默認值定義爲另一個參數?例如:函數參數的默認值等於另一個參數

def func(a, b=a): 
    print a, b 

但這並沒有奏效。

+0

爲什麼不分配'了'在函數的第一行'B'? – McGlothlin

+2

你不能這樣做,你需要做'b = None'然後'如果b是None:b = a'。請參閱http://stackoverflow.com/q/4575326/3001761(如果您搜索此內容,您可能會發現它很平凡......) – jonrsharpe

回答

1

不,這是不可能的。 Python解釋器認爲,如果沒有全局變量a,您想要將參數b的默認值分配給全局變量a

你可能想嘗試這樣的事:

def func(a, b=None): 
    if b is None: 
     b = a 
+0

...缺少默認值。 – jonrsharpe

+0

@jonrsharpe一秒鐘,發帖時就忘記了。 –

+0

這不會允許只傳遞一個變量 –