Python面向對象編程從零開始(2)—— 與對象相互了解
前言
咳咳,接著昨天的故事繼續
昨天的傳送門:https://ask.hellobi.com/blog/wangdawei/8429
昨天我們說了以下幾點:
- 面向對象和面向過程的區別
- 對象和類
- 創建類
- 定義對象
- 類的三要素
今天繼續來和對象(小姐姐)一起玩耍。
了解對象--小姐姐自我介紹
目前我們只知道小姐姐的姓名,芳齡,除了她喜歡開車,我不了解其他什麼了。
所以我想讓她做個自我介紹,然後可以深入了解。
讓小姐姐(對象)自己介紹一下自己,她比較害羞,不想說一大串,她讓我直接問她問題她回答。
所以我先要優化原來定義的類(接著上文結尾代碼):
class Car:n n def drive(self):n print(我正在開車)n n def turnover(self):n print(翻車了)n n def introduce(self):n print(%s的年齡是:%d%(xiao_jie_jie.name,xiao_jie_jie.age))n n#創建一個對象nxiao_jie_jie=Car()nnxiao_jie_jie.drive()#調用xiao_jie_jie指向的對象的方法nxiao_jie_jie.turnover()nnn#添加屬性,屬性就是變數nxiao_jie_jie.name = 王夢瑤nxiao_jie_jie.age = 20nnxiao_jie_jie.introduce()n
注意:只有最後一句是小姐姐自己的自我介紹(introduce),其他的都是我完成的啦。
是不是感覺,面向對象很有優勢。
運行結果如下:
注意:這裡把原來在類外寫的print寫在了類里,寫在了introduce()方法里,然後調用introduce()方法實現自我介紹。
既然小姐姐都自我介紹了,為了表示相互尊重,我也要介紹一下自己。
我的自我介紹
myself = Car()nnmyself.name = 王大偉nmyself.age = 18nnmyself.features = 玉樹臨風 英俊瀟洒 風流倜儻 貌似潘安 形貌昳麗 器宇軒昂 一表人才 雄姿英發 風度翩翩nmyself.introduce()n
我把我自己也定義在Car這個類下,myself也是Car這個類下的一個對象。
然後同樣介紹了我的姓名和年齡
因為我不像小姐姐一樣害羞啊
所以我自我介紹就多說了幾句『大實話』,並擅自幫小姐姐補充了一下自我介紹。
class Car:n n def drive(self):n print(我正在開車)n n def turnover(self):n print(翻車了)n n def introduce(self):n print(%s的年齡是:%d,特點是:%s%(self.name,self.age,self.features))n n#創建一個對象nxiao_jie_jie=Car()nnxiao_jie_jie.drive()#調用xiao_jie_jie指向的對象的方法nxiao_jie_jie.turnover()nnn#添加屬性,屬性就是變數nxiao_jie_jie.name = 王夢瑤nxiao_jie_jie.age = 20nxiao_jie_jie.features = 北方有佳人 遺世而獨立 一顧傾人城 再顧傾人國nnxiao_jie_jie.introduce()nnmyself = Car()nnmyself.name = 王大偉nmyself.age = 18nmyself.features = 玉樹臨風 英俊瀟洒 風流倜儻 貌似潘安 形貌昳麗 器宇軒昂 一表人才 雄姿英發 風度翩翩nnmyself.introduce()n
運行結果如下:
注意:劃重點,因為我和小姐姐都要使用類中的方法introduce(),為了我和小姐姐這兩個對象都能調用這個類中的方法,需要把introduce()方法傳入的參數改成如下:
用self代替原來的xiao_jie_jie,self可以通俗理解為,誰調用了方法傳的就是誰的參數進去,這裡兩次調用(小姐姐和我相互自我介紹,相當於傳了xiao_jie_jie和myself進去)
這樣,我們的自我介紹就完成了。
今天時間不多,只能更新這麼多了。
想了解我與小姐姐的更多故事,請持續關注。
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:Python面向對象編程從零開始(2)-- 與對象相互了解配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享 公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※【譯文】基於Python的自然語言處理指南
※快速教程:使用Cython來擴展Python/NumPy庫
※odoo10 開發學習筆記2—簡單的請假模塊
※Python · 進度條
※Python - lru_cache和singledispatch裝飾器