我很難理解爲什麼我的代碼的工作方式。現在,我正在初始化一個全局變量,我將它設置爲0,所以如果我將它打印到我的函數之外的任何地方,我應該得到0.Python全局與局部變量?
當我在函數內打印i時, 12次調用該函數兩次後。我認爲這是因爲全球我是0,但一些本地我變量不是。但是,當我用i作爲參數調用reach_load時,是不是傳入i(0)的全局值?
import sys
d = {}
size_0 = sys.getsizeof(d)
i = 0
def reach_load(d, size_0, i):
size_0 = sys.getsizeof(d)
while size_0 == sys.getsizeof(d):
d[i] = i
i += 1
print(i)
reach_load(d, size_0, i)
reach_load(d, size_0, i)
「然而,當我打電話跟我reach_load作爲參數,又不是我傳遞我的全局值(0)?」 - 是的,但是當你分配給它時,你並沒有分配給全局。請參閱https://nedbatchelder.com/text/names.html – user2357112