_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個下劃線的話表示該方法是私有的,否則為公有的)。