2017.11.13魔法方法

_init__的功能:屬性初始化

1、在對象創(chuàng)建的時候,自動調(diào)用

self: 當(dāng)前對象,哪個對象調(diào)用這個方法了,self就是這個對象

私有化 其實也是一種封裝

不能直接對外訪問,通過兩個步驟,間接對外訪問

1、設(shè)置私有化? __屬性

2、對外提供可訪問的接口(方法)? 獲取和設(shè)置

對象是可變的,傳遞之后,修改屬性了,影響原來的對象

·在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法

·當(dāng)使用print輸出對象的時候,只要自己定義了__str__(self)方法,那么就會打印從在這個方法中return的數(shù)據(jù)

·所謂的self,可以理解為自己

·可以把self當(dāng)做C++中類里面的this指針一樣理解,就是對象自身的意思

·某個對象調(diào)用其方法時,python解釋器會把這個對象作為第一個參數(shù)傳遞給self,所以開發(fā)者只需要傳遞后面的參數(shù)即可


如果有一個對象,當(dāng)需要對其進(jìn)行修改屬性時,有2種方法

·對象名.屬性名=數(shù)據(jù)---->直接修改

·對象名.方法名()?---->間接修改

為了更好的保存屬性安全,即不能隨意修改,一般的處理方式為

·將屬性定義為私有屬性

·添加一個可以調(diào)用的方法,供調(diào)用


·Python中沒有像C++中public和private這些關(guān)鍵字來區(qū)別公有屬性和私有屬性

·它是以屬性命名方式來區(qū)分,如果在屬性名前面加了2個下劃線'__',則表明該屬性是私有屬性,否則為公有屬性(方法也是一樣,方法名前面加了2個下劃線的話表示該方法是私有的,否則為公有的)。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容