9.5 實(shí)例屬性和類屬性
由于Python是動態(tài)語言,根據(jù)類創(chuàng)建的實(shí)例可以任意綁定屬性。
給實(shí)例綁定屬性的方法是通過實(shí)例變量,或者通過self
變量:
但是,如果Student
類本身需要綁定一個屬性呢?可以直接在class中定義屬性,這種屬性是類屬性,歸Student
類所有:
當(dāng)我們定義了一個類屬性后,這個屬性雖然歸類所有,但類的所有實(shí)例都可以訪問到。來測試一下:
從上面的例子可以看出,在編寫程序的時候,千萬不要對實(shí)例屬性和類屬性使用相同的名字,因?yàn)橄嗤Q的實(shí)例屬性將屏蔽掉類屬性,但是當(dāng)你刪除實(shí)例屬性后,再使用相同的名稱,訪問到的將是類屬性。
小結(jié)
實(shí)例屬性屬于各個實(shí)例所有,互不干擾;
類屬性屬于類所有,所有實(shí)例共享一個屬性;
不要對實(shí)例屬性和類屬性使用相同的名字,否則將產(chǎn)生難以發(fā)現(xiàn)的錯誤。
標(biāo)簽: