1 python
str2 = "Global"
class InClass:
str2 = "Class"
def Set(self, msg):
self.str2 = msg
def Print(self):
print(str2)
g = InClass()
g.Set("Instance")
g.Print()
Run Code Online (Sandbox Code Playgroud)
如果我运行此代码,我会得到"全局".但我不明白为什么.
通过调用实例g的Set()方法,变量str2现在位于实例g的名称空间中.然后,遵循LGB范围规则,实例g的命名空间是第一个可以找到str2的命名空间!所以,结果应该是"实例".
这是错的吗?