标题不是问题。这个问题我已经通过理解“不可变和可变”的东西解决了。 但是,我想对此有所了解。 如果我不接受他并使第一个创建阴影,那么究竟允许该对象被另一个函数加入。 我给你看了代码:
def text():
print x
x = 6
text()
这个例子很好用,因为我没有创建一个不可变的新对象。 但是这个:
def text():
print x
text()
x = 6
这不起作用,因为整数不是全局变量。
当我创建一个没有全球化的新对象时,究竟发生了什么?在这个对象的内存中,允许我通过另一个范围接近它。为什么它如此不同,只是一个全球性的?
答案 0 :(得分:0)
在函数内部,如果将分配给变量并且不对其使用global
,那么该变量是本地的。如果你只是使用一个变量并且没有赋值给它,那么它假定来自一个外部作用域,在本例中来自模块级别。
这就是为什么第一个使用模块级变量。
第二个不起作用,因为调用text()
时,模块级别的变量尚不存在。