python學習筆記-2-面向對象

1. class X(Y)?

X-類名

Y-繼承類名

初始化:def__init__(self, attribute1, attribute2):

__init__方法的第一個參數永遠是self,表示創(chuàng)建的實例本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向創(chuàng)建的實例本身。



2.解釋器內部會將**kw拆分成對應的dict

setattr()方法接受3個參數:setattr(對象,屬性,屬性的值)

setattr(self,k,v)相當于self.k = v


3.如果一個屬性由雙下劃線開頭(__),該屬性就無法被外部訪問。

但是,如果一個屬性以"__xxx__"的形式定義,那它又可以被外部訪問了,以"__xxx__"定義的屬性在Python的類中被稱為特殊屬性,有很多預定義的特殊屬性可以使用,通常我們不要把普通屬性用"__xxx__"定義。

以單下劃線開頭的屬性"_xxx"雖然也可以被外部訪問,但是,按照習慣,他們不應該被外部訪問。


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


5.當實例屬性和類屬性重名時,實例屬性優(yōu)先級高


6.

>>> getattr(s, 'name')# 獲取name屬性'Bob'

>>> setattr(s, 'name', 'Adam')# 設置新的name屬性

>>> s.name ?'Adam'

>>> getattr(s, 'age')# 獲取age屬性,但是屬性不存在,報錯:Traceback (most recent call last):? File "", line 1, in AttributeError: 'Student' object has no attribute 'age'

>>> getattr(s, 'age', 20)# 獲取age屬性,如果屬性不存在,就返回默認值20:


7.? iteritems()用于字典kw的遍歷

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容