在學基礎語法之前先學習一下python中的一個內置函數dir。在python中對象幾乎是無處不在的,之前學習的變量、數據、函數都是對象。
在python中可以使用以下兩個方法驗證是否是對象:
1、在標識符/數據(或變量名)後輸入一個點.,然後按下一個TAB鍵,iPython會提示該對象能夠調用的常用方法列表。
2、使用內置函數dir傳入標識符/數據(變量名或函數名),可以查看對象內的所有屬性及方法。
使用函數中的__doc__
demo.__doc
提示:__方法名__ (兩個下劃線開頭和結尾)格式的方法是Python提供的內置方法/屬性,接下來會介紹一些常用的內置方法/屬性。
序號
方法名
類型
作用
01
__new__
方法
創建對象時,會被自動調用
02
__init__
方法
對象被初始化時,會被自定調用
03
__del__
方法
對象被從內存中銷毀前,會被自動調用
04
__str__
方法
返回對象的描述信息,print函數輸出使用
提示:利用好dir()函數,在學習時很多內容就不需要死記硬背了。
提醒:安裝 ipython 之後,查看 PyCharm 設置,確保 Console 的通用設置 Use IPython if available 選項打勾。
面向對象是更大的封裝,在一個類中封裝多個方法,這樣通過這個類創建出來的對象就可以直接調用這些方法。
在python中要定義一個只包含方法的類,語法格式如下:
class 類名:
def 方法1(self, 參數列表):
pass
def 方法1(self, 參數列表):
pass
方法的定義格式和之前學習過的函數幾乎一樣。區別:在於第一個參數必須是self,可以先記住就是這個格式,之後再介紹這個self。
注意: 類名的命格規則要符合大駝峰命名法。
當一個類定義完成之後,要是用這個類來創建對象,語法格式如下:
對象變量 = 類名()
需求:小貓愛吃魚,小貓要喝水
分析:
1. 定義一個貓類 Cat
2. 定義兩個方法eat 和 drink
3. 按照需求,不需要定義屬性
Cat
eat(self)
drink(self)
示例代碼:
class Cat:
def eat(self):
print("小貓愛吃魚")
def drink(self):
print("小貓要喝水")
# 創建貓對象名字叫tom
tom = Cat()
# 調用對象的方法
tom.eat()
tom.drink()
執行結果:
在主程序中使用tom這個變量去接收一個Cat貓的對象,然後用tom這個變量來調用吃魚的和喝水的方法,至於吃魚的方法和喝水的方法是怎麼實現的,主程序中就不關心了。
面向對象開發中很明顯的一個特點,主程序中只負責讓對象去工作,而不再關心具體方法的內部實現,至於方法內部的實現統統被封裝到了Cat貓這個類中。
面向對象是學習Python中一個很難的部分,同樣也是一個很重要的知識,以後去公司做項目必然會用到,希望在學習這反面的小白不要害怕,慢慢來,一遍不懂就反復的查找資料理解,千萬不要說學到後面感覺太難就放棄了,這個骨頭不啃掉還怎麼學習後面的知識呢。在python自學網裡有幾十節面向對象的視頻教程,也有文字解說文章。還包括其他教程比如django教程等等,感興趣的可以去網裡瞅一瞅。