8.5 實例屬性和類屬性
給實例綁定屬性的方法是通過實例變量,或者通過self變量:
>>> class Animal(object):
def __init__(self,name):
self.name = name
>>> an = Animal('wangda')
>>> an.age = 3
如果Student類本身需要綁定一個屬性呢?可以直接在class中定義屬性,這種屬性是類屬性,歸Student類所有:
class Student(object):
name = ‘Student’
當我們定義了一個類屬性後,這個屬性雖然歸類所有,但類的所有實例都可以訪問到。來測試一下:
>>> class Animal:
name = 'animal'
>>> an = Animal()
>>> print(an.name)
animal
>>> print(Animal.name)
animal
>>> an.name = 'Dog'
>>> an.name
'Dog'
>>> print(an.name)
Dog
>>> print(Animal.name)
animal
>>> del an.name
>>> print(an.name)
animal
從上面的例子可以看出,在編寫程序的時候,千萬不要對實例屬性和類屬性使用相同的名字,因爲相同名稱的實例屬性將屏蔽掉類屬性,但是當你刪除實例屬性後,再使用相同的名稱,訪問到的將是類屬性。