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 的實例。

?不會了怎么辦
由於創建實例必定會調用__init__()方法,所以在這里修改類屬性 count 很合適。

參考代碼:

class Person(object):
    count = 0
    def __init__(self, name):
        Person.count = Person.count + 1
        self.name = name
p1 = Person('Bob')
print Person.count
# => 1
p2 = Person('Alice')
print Person.count
# => 2
p3 = Person('Tim')
print Person.count
# => 3

 


免責聲明!

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



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