python中若類屬性與例項屬性同名

2022-03-04 03:00:45 字數 802 閱讀 4095

python類中若定義了乙個類屬性,可以通過「類名.類屬性名「來得到並修改此類屬性值;也可以通過「例項名.變屬性名"來得到此類屬性的值,但若試圖通過「例項名.變屬性名」這種方式來修改此類屬性的值,不會達到預期效果,結果是類屬性的值並未被更改,例項首先會建立乙個與類屬性同名且相等值的「例項屬性」,再對此例項屬性進行操作

例項一:

python**:

classca:

c=0def__init__(self):

#self.c=0

self.c+=3

self.__class__.c+=1

print"self.__class__.c="+str(self.__class__.c)

print"self.c="+str(self.c)

a=ca()

ca.c=100

b=ca()

螢幕輸出:

self.__class__.c=1

self.c=3

self.__class__.c=101

self.c=103

例項二:

python**:

classca:

c=0def__init__(self):

self.__class__.c+=1

printca.c

a=ca()

printca.c

printa.c

ca.c=100

printca.c

a.c+=1

printa.c

螢幕輸出:01

1100

101

Python 類屬性與例項屬性

python在 init self 方法中定義的屬性為例項屬性,並且python的例項可以動態地增加例項屬性 直接跟在類名後邊定義的屬性都預設是類屬性 類似於c 的static變數 要明白雷和例項都是命名空間。類是類屬性的命名空間,例項則是例項屬性的命名空間。例項屬性能夠在名稱訪問 搜尋 中覆蓋類屬...

Python例項屬性與類屬性

class foo object version 1.0 f foo print foo.version 1.0 print f.version 1.0 foo.version 0.1 print foo.version 1.1 print f.version 1.1 f.version 0.1 p...

Python類屬性與例項屬性

類屬性為所有例項擁有,例項屬性為單個例項擁有class cls object count 0 count 0def init self cls.count cls.count 1 self.count self.count 1 p cls print 類屬性 d p.count print 例項屬性...