從零開始學Python-Day42-實例屬性和類屬性

由於Python是動態語言,根據類創建的實例可以任意綁定屬性。給實例綁定屬性的方法是通過實例變量,或者通過self變量:

<code> > 

class

Student

(

object

):

def

__init__

(

self

, name)

:

self

.name = name > s = Student(

'Bob'

) > s.score =

99

/<code>

如果Student類本身需要綁定一個屬性呢?可以直接在class中定義屬性,這種屬性是類屬性,歸Student類所有:

<code>

class

Student

(

object

): name =

'Student'

class

Student

(

object

): name =

'Student'

/<code>

當我們定義了一個類屬性後,這個屬性雖然歸類所有,但類的所有實例都可以訪問到。來測試一下:

<code> > 

class

Student

(

object

):

name =

'Student'

> s = Student() > print(s.name) Student > print(Student.name) Student > s.name =

'Woodman'

> print(s.name) Woodman > print(Student.name) Student > del s.name > print(s.name) Student/<code>

從上面的例子可以看出,在編寫程序的時候,千萬不要對實例屬性和類屬性使用相同的名字,因為相同名稱的實例屬性將屏蔽掉類屬性,但是當你刪除實例屬性後,再使用相同的名稱,訪問到的將是類屬性。


分享到:


相關文章: