0
我想用一些可選參數定義一個函數,比如A(強制)和B(可選)。當沒有給出B時,我希望它取得與A相同的值。我怎麼能這樣做?Python可選函數參數默認爲另一個參數的值
我已經試過這一點,但它不工作(名稱「B」沒有定義):
def foo(A, B=A):
do_something()
我明白的參數值的函數體之前未分配。
我想用一些可選參數定義一個函數,比如A(強制)和B(可選)。當沒有給出B時,我希望它取得與A相同的值。我怎麼能這樣做?Python可選函數參數默認爲另一個參數的值
我已經試過這一點,但它不工作(名稱「B」沒有定義):
def foo(A, B=A):
do_something()
我明白的參數值的函數體之前未分配。
你應該在你的函數中做這個。
以你原來的功能:
def foo(A, B=A):
do_something()
嘗試類似:
def foo(A, B=None):
if B is None:
B = A
do_something()
重要的是,當時給出的函數參數該功能默認值,函數定義。
當您使用A
的某個值調用該函數時,由於B
默認值已被分配並處於函數定義中,所以已經太遲了。
你可以這樣做。如果B
的值爲None
,則將其從A
分配到
def foo(A, B=None):
if B is None:
B = A
print 'A = %r' % A
print 'B = %r' % B