python--創建類屬性


創建類屬性

類是模板,而實例則是根據類創建的對象。

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

定義類屬性可以直接在 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 + 1

p1 = Person('Bob')
print (p1.count)

p2 = Person('Alice')
print (p2.count)

p3 = Person('Tim')
print (Person.count)

運行結果

1
2
3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM