我很难理解为什么我的代码的工作方式。现在,我正在初始化一个全局变量,我将它设置为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