Python 類屬性與例項屬性

2021-06-12 21:19:05 字數 693 閱讀 6864

python在__init__(self) 方法中定義的屬性為例項屬性,並且python的例項可以動態地增加例項屬性;直接跟在類名後邊定義的屬性都預設是類屬性(類似於c++的static變數)。

要明白雷和例項都是命名空間。類是類屬性的命名空間,例項則是例項屬性的命名空間。例項屬性能夠在名稱訪問(搜尋)中覆蓋類屬性,通俗地講就是例項命名空間巢狀在類命名空間中,但是在類命名空間中查詢名稱時不會查詢例項命名空間。所以可以採用類來訪問類屬性,如果例項沒有同名的屬性的話,也可以用例項來訪問。

class attribute(object):

def __init__(self,a=0,b=0):

self.a=a

self.b=b

c_a=10

aaa=attribute()

bbb=attribute()

print attribute.c_a,aaa.c_a,bbb.c_a

print aaa.__dict__

print bbb.__dict__

aaa.c_a+=10

print attribute.c_a,aaa.c_a,bbb.c_a

print aaa.__dict__

print bbb.__dict__

#輸出10 10 10

10 20 10

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 例項屬性...

Python類屬性,例項屬性

dreamfor的部落格 1.python類資料屬性 定義在類裡面但在函式外面的變數,它們都是靜態的。一段很簡單的 但反應了很多 class a a 1 乙個類裡面有個屬性a a a b a a.a b.a a.a 這個屬效能被例項和類訪問 a.a 2 b.a a.a 改變例項a的屬性a,例項b和類...