[英]Persisting variable value in Python
for i in range(0,3):
j = 0
print 'incrementing '
j += 1
print j
印刷
incrementing
1
incrementing
1
incrementing
1
我怎樣才能堅持 'j' 的價值,以便它打印:
1
2
3
您不應該在循環中將j
重置為零:
j = 0
for i in range(0,3):
print 'incrementng '
j += 1
print j
如果你想把它放在 function 中,這是一個非常骯臟的 hack:默認 arguments,在 Python 中,如果默認參數是一個數組,它會變成不同的“靜態”,如:
def f(j = [0]):
j[0] += 1
print('incrementing', j[0])
f() # prints "incrementing 1"
f() # prints "incrementing 2"
f() # prints "incrementing 3"
玩得開心!
編輯:
驚人的,降級的,沒有任何解釋為什么這個黑客是壞的或離題的。 Python 中的默認 arguments 在解析時進行評估,我錯了嗎? 我不認為我是,我只是期望我的帖子上有聰明的答案而不是負面的觀點......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.