類屬性和例項屬性

2021-10-01 06:51:32 字數 1219 閱讀 3257

首先,得了解類的特殊屬性__dict__,它是乙個字典,用於儲存類或者例項的屬性,即使你沒有去定義它,它也存在每個類中,是預設隱藏的。然後來看下面三個問題:

class

testa

: attr =

1obj_a = testa(

)testa.attr =

42print

(obj_a.attr)

print

(testa.__dict__)

print

(obj_a.__dict__)--

----

----

----

----

----

---42

class

testa

: attr =

1obj_a = testa(

)obj_b = testa(

)obj_a.attr =

42print

(obj_b.attr)

print

(testa.__dict__)

print

(obj_a.__dict__)--

----

----

----

----

----

---1

class

testa

: attr =

1def

__init__

(self)

: self.attr =

42obj_a = testa(

)print

(obj_a.attr)

print

(testa.__dict__)

print

(obj_a.__dict__)--

----

----

----

----

----

---42

從結果可以知道,屬性的引用機制是自外而內的,python的編譯器會先搜尋該例項是否擁有某個屬性,如果有則引用;如果沒有,將搜尋這個例項所屬的類是否有這個屬性,如果有則引用,沒有則報錯。

例項屬性和類屬性

例項屬性和類屬性 由於python是動態語言,根據類建立的例項可以任意繫結屬性。給例項繫結屬性的方法是通過例項變數,或者通過self變數 class student object def init self,name self.name name s student bob s.score 90但是...

類屬性和例項屬性

類屬性就是類物件所擁有的屬性,它被所有類物件的例項物件所共有,在記憶體中只存在乙個副本,這個和c 中類的靜態成員變數有點類似。對於公有的類屬性,在類外可以通過類物件和例項物件訪問 class people object name tom 公有的類屬性 age 12 私有的類屬性 p people p...

類屬性和例項屬性

1.不可修改型別 物件屬性只要賦值,那麼此物件用的屬性就是自己的屬性,不會再用同名的類屬性,類屬性的變化不會再影響到此物件。2.可修改型別 a.修改內部屬性的值,只要修改不是賦值,那麼修改會影響到所有物件以及類屬性。b.如果是重新賦值操作,效果等同於不可修改型別。class a books 三國 西...