這裏我有一個屬性'a',它是在第一類方法中定義的,應該在第二個方法中更改。 當爲了打電話給他們,出現此消息:AttributeError:'Class'對象沒有屬性'a'
AttributeError: 'Class' object has no attribute 'a'
我發現的唯一途徑 - 定義「一」又在第二個方法,但在實際的代碼具有長期的繼承和應用程序將被搞砸。 它爲什麼不起作用?是不是self.a等於Class.a?
class Class(object):
def method_1(self):
self.a = 1
def method_2(self):
self.a += 1
Class().method_1()
Class().method_2()
大初始化
c
答案......但可能值得解釋的是'self.a'不等於'Class.a',而不是簡單地說「不」)。 'self.a'是一個_instance屬性_:每個''''''實例都有自己的副本。 'Class.a'是一個_class attribute_:無論有多少實例(類似於C++和相關語言中的靜態成員),類本身都有一個副本。如果你不知道爲什麼你想要一個班級屬性,你不需要一個。 – abarnert 2013-04-23 00:19:11