Python面向對象編程從零開始(2)—— 與對象相互了解

前言

咳咳,接著昨天的故事繼續

昨天的傳送門:ask.hellobi.com/blog/wa

昨天我們說了以下幾點:

  1. 面向對象和面向過程的區別
  2. 對象和類
  3. 創建類
  4. 定義對象
  5. 類的三要素

今天繼續來和對象(小姐姐)一起玩耍。

了解對象--小姐姐自我介紹

目前我們只知道小姐姐的姓名,芳齡,除了她喜歡開車,我不了解其他什麼了。

所以我想讓她做個自我介紹,然後可以深入了解。

讓小姐姐(對象)自己介紹一下自己,她比較害羞,不想說一大串,她讓我直接問她問題她回答。

所以我先要優化原來定義的類(接著上文結尾代碼):

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裝飾器

TAG:Python | Python入门 | 面向对象编程 |