python 建立類屬性

2022-03-02 12:14:23 字數 1369 閱讀 6833

類是模板,而例項則是根據類建立的物件。

繫結在乙個例項上的屬性不會影響其他例項,但是,類本身也是乙個物件,如果在類上繫結乙個屬性,則所有例項都可以訪問類的屬性,並且,所有例項訪問的類屬性都是同乙個!也就是說,例項屬性每個例項各自擁有,互相獨立,而類屬性有且只有乙份。

定義類屬性可以直接在 class 中定義:

class

person(object):

address = '

earth

'def

__init__

(self, name):

self.name = name

因為類屬性是直接繫結在類上的,所以,訪問類屬性不需要建立例項,就可以直接訪問:

print

person.address

#=> earth

對乙個例項呼叫類的屬性也是可以訪問的,所有例項都可以訪問到它所屬的類的屬性:

p1 = person('

bob'

)p2 = person('

alice')

print

p1.address

#=> earth

print

p2.address

#=> earth

由於python是動態語言,類屬性也是可以動態新增和修改的:

person.address = '

china

'print

p1.address

#=> 'china'

print

p2.address

#=> 'china'

因為類屬性只有乙份,所以,當person類的address改變時,所有例項訪問到的類屬性都改變了。

請給 person 類新增乙個類屬性 count,每建立乙個例項,count 屬性就加 1,這樣就可以統計出一共建立了多少個 person 的例項。

class

person(object):

count =0

def__init__

(self,name):

self.name =name

person.count = person.count + 1p1 = person('

bob'

)print

(p1.count)

p2 = person('

alice')

print

(p2.count)

p3 = person('

tim'

)print (person.count)

1

23

python 類屬性 用處 Python類屬性詳解

類屬性1.類定義後就存在,而且不需要例項化 2.類屬性使得相同類的不同例項共同持有相同變數 類屬性例項 attrb.py class testcss cssa class attribe def init self self.a 0 self.b 10 def info self print a s...

python限定類屬性的類屬性 slots

slots 由於python是動態語言,任何例項在執行期都可以動態地新增屬性。如果要限制新增的屬性,例如,student類只允許新增 name gender和score 這3個屬性,就可以利用python的乙個特殊的 slots 來實現。顧名思義,slots 是指乙個類允許的屬性列表 class s...

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和類...