? ? ? ? 在描述一個普通類中的特殊類時,有時添加的細節越來越多,代碼會很冗長,既不方便讀取也不方便他人理解你編寫的類,這時可以將類中的大塊部分獨立出來當做一個新的類,用該類的實例作為要描述的類中的屬性。比如描述電動汽車,可能電瓶信息要占據很大部分篇幅,此時就可以將電池信息及方法作為獨立的類,在描述電動汽車時可以用該類創建的實例來當做其屬性。
? ? ? ? 對狗狗的類,需要重復打印其相關信息,此時可以將打印信息的方法及信息作為實例去創建狗狗的類。專業一點的說法據說叫封裝:
1、定義狗狗信息的類,其中包含名字,年齡屬性;定義打印狗狗信息的方法,用于打印狗狗的信息;
2、定義一個Dog類,狗狗名字和年齡屬性的信息傳遞方式跟以往不同;
3、定義改名字,年齡遞增,重新打印信息的方法;
4、創建名為dg的狗狗實例,通過調用方法,實現改名,年齡遞增并打印相關信息。
1、將信息屬性封裝,然后通過實例傳遞屬性是簡潔且易于理解的方式;
2、實例傳遞屬性時任然要傳遞給屬性,代碼中是self.info這一屬性;
3、實例包含相關的形參;
沒有看大大的代碼,按自己理解的方式重寫打印信息的方式,結果出現了一定的偏差。
? ? ? ? 思考之后,發現重寫方法時,多用了一個print語句,因為在實例中本身包含了打印信息的語句,再打印調用方法的屬性時沒有任何東西,只能打印出空值(打印再打印 = 沒東西可打)。修改之后恢復正常。
? ? ? ? 可以看出通過實例來當作屬性的方式定義類時,在創建該類的實例將自動包含實例所表示的類信息,實現了一定程度上到我自動化。對包含屬性的實力類可以做任意改動而不會讓類顯得混亂不堪。