1.1應(yīng)用:存放家具
對象之間的傳遞
1.1保護對象的屬性
如果有一個對象丁稀,當(dāng)需要對其進行修改屬性時穗酥,有2種方法
·對象名.屬性名=數(shù)據(jù)---->直接修改
·對象名.方法名() ---->間接修改
為了更好的保存屬性安全,即不能隨意修改惧磺,一般的處理方式為
·將屬性定義為私有屬性
·添加一個可以調(diào)用的方法版确,供調(diào)用
總結(jié)
·Python中沒有像C++中public和private這些關(guān)鍵字來區(qū)別公有屬性和私有屬性
·它是以屬性命名方式來區(qū)分,如果在屬性名前面加了2個下劃線'__'饼灿,則表明該屬性是私有屬性,否則為公有屬性(方法也是一樣帝美,方法名前面加了2個下劃線的話表示該方法是私有的碍彭,否則為公有的)。
1.1__del__()方法
創(chuàng)建對象后悼潭,python解釋器默認(rèn)調(diào)用__init__()方法庇忌;
當(dāng)刪除一個對象時,python解釋器也會默認(rèn)調(diào)用一個方法舰褪,這個方法為__del__()方法
1.1繼承介紹以及單繼承
將共性的內(nèi)容放在父類中皆疹,子類只需要關(guān)注自己特有的內(nèi)容
在程序中,繼承描述的是事物之間的所屬關(guān)系抵知,例如貓和狗都屬于動物墙基,程序中便可以描述為貓和狗繼承自動物;同理刷喜,波斯貓和巴厘貓都繼承自貓残制,而沙皮狗和斑點狗都繼承自狗,如下如所示:
說明:
·雖然子類沒有定義__init__方法,但是父類有浊闪,所以在子類繼承父類的時候這個方法就被繼承了恼布,所以只要創(chuàng)建Bosi的對象,就默認(rèn)執(zhí)行了那個繼承過來的__init__方法
總結(jié)
·子類在繼承的時候搁宾,在定義類時折汞,小括號()中為父類的名字
·父類的屬性、方法盖腿,會被繼承給子類
總結(jié)
·私有的屬性爽待,不能通過對象直接訪問,但是可以通過方法訪問
·私有的方法翩腐,不能通過對象直接訪問
·私有的屬性鸟款、方法,不會被子類繼承茂卦,也不能被訪問
·一般情況下何什,私有的屬性、方法都是不對外公布的等龙,往往用來做內(nèi)部的事情处渣,起到安全的作用
多繼承
繼承伶贰,即子類有多個父類,并且具有它們的特征
在父類D和C中霍比,有同一方法D幕袱。那么通過子類F調(diào)用該方法暴备。調(diào)用的是父類D的'D'方法
在父類B和C中悠瞬,有同一方法hehe。那么通過子類F調(diào)用該方法涯捻。調(diào)用到父類B中的hehe方法浅妆。
調(diào)用順序是從左到右
1.1重寫父類方法與調(diào)用父類方法
1.1.1重寫父類方法
所謂重寫,就是子類中障癌,有一個和父類相同名字的方法凌外,在子類中的方法會覆蓋掉父類中同名的方法
調(diào)用父類的方法
調(diào)用父類被重寫的用,兩種方法都可以
1.1.1類屬性
1.1.1實例屬性(對象屬性)
1.1.1通過實例(對象)去修改類屬性
總結(jié)
·如果需要在類外修改類屬性涛浙,必須通過類對象去引用然后進行修改康辑。如果通過實例對象去引用,會產(chǎn)生一個同名的實例屬性轿亮,這種方式修改的是實例屬性疮薇,不會影響到類屬性,并且之后如果通過實例對象去引用該名稱的屬性我注,實例屬性會強制屏蔽掉類屬性按咒,即引用的是實例屬性,除非刪除了該實例屬性但骨。
?