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()
如果我運行此代碼,則得到「Global」作爲結果。但我不明白爲什麼。LGB作用域規則和在Python中使用「self」
通過調用實例g的Set()方法,變量str2現在位於實例g的名稱空間中。然後,遵循LGB範圍規則,實例g的命名空間是第一個可以找到str2的命名空間!所以,結果應該是「實例」。
這是錯誤的嗎?
你是什麼意思的「LGB範圍」? – 2010-11-03 08:38:45