0
您能否請某人描述Python可選參數在函數中的行爲?Python 3.5函數中的可選參數
我的理解是,可選參數在函數定義中使用默認值。
以下代碼具有正確的行爲。
# Function
def testf2(val=0):
val += 5
print(val)
val=0
return
# Testing
testf2()
testf2(10)
testf2()
# Output:
5
15
5
但我不知道爲什麼類似的代碼與可選列表有完全不同的行爲。即使列表被val = []清除,該函數也會記住一些數據。
# Function
def testf(val=[]):
val.append("OK")
print(val)
val=[]
return
# Testing
testf()
testf(["myString"])
testf()
testf(["mySecondString"])
testf()
# Output:
['OK'] #excpected ['OK']
['myString', 'OK'] #excpected ['myString']
['OK', 'OK'] #excpected ['OK']
['mySecondString', 'OK'] #excpected ['mySecondString']
['OK', 'OK', 'OK'] #excpected ['OK']
非常感謝您的幫助。