本文目錄一覽:
Python中的面向對象(進階)
一、實例方法,類方法,靜態方法
我們首先寫一個類,裏面包含這三種方法。
可以看到,我們用到了兩個裝飾器。
我們用類和實例分別調用下類方法
我們用類和實例分別調用下靜態方法
靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。
為了方便理解,我們分別打印下這些方法的類型
通過type()查看對象是方法還是函數
此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數
把函數放到類里,我們叫做方法
方法可以通過裝飾器staticmethod轉為(放在方法里的)函數
繼承
一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來試一下
1)完全繼承
可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。
2)部分繼承
部分繼承:繼承父類後,修改父類的同名方法
我們試一下,Square繼承Rectangle後,修改__init__()方法
3)拓展父類的方法
在保留父類中某個方法的代碼同時,對方法進行拓展
可以在方法中加入”super().方法名”來實現
4)@property
Python中的面向對象(高級)之私有方法、多繼承、多態
特徵:私有屬性與私有方法不能從外部被調用,也不能被子類繼承
唯一寫法:在屬性或方法前面加上__(兩個下劃線)
我們寫一個簡單的例子,創建一個類,包含私有方法、私有屬性、普通方法、普通屬性,並生成一個實例
私有屬性和私有方法可以從內部被調用(總不能我寫了,但是哪都不讓用吧)
我們試試在類里再加入一個新的方法,調用私有方法和屬性
可以看到,私有屬性和私有方法是可以在類內部被調用的。
舉個私有屬性應用場景的例子
二。object類
我們試一下
三。多繼承
一個子類可以繼承多個父類,用逗號隔開
多個父類中有同名方法時,按照繼承順序進行調用
四。多態
當不同的實例,有同名的方法時,我們可以一個函數,傳入不同的實例,執行對應的方法。
我們定義一個貓和一個狗的類,兩個類中都有’叫’的方法。並各生成一個實例。
定義一個函數,用函數來調用’叫’的方法
這就叫多態。
python極簡教程:對象的方法
這一場,主講python的面向對象的第二部分—— 對象的方法 。
目的:掌握Python對象的五個核心方法。
講解之前,先上一段代碼
通過前面的學習,你能說出這段代碼運行的輸出結果嗎?
答案是:
通常,我們會認為__init__()是類的初始化方法,當實例化類之後,會優先執行它(運行後應當優先輸出”init”、”init 張三”),但實際上,__new__()方法才優先執行的方法,同時,它也是創建對象的方法。
說得通俗一點:以造房子舉例,new方法是打地基,存放建材原料,init方法則是按照圖紙建造房子。
那麼,什麼時候用new方法?
其實,用得很少,更多的時候,我們使用的是init方法。但init方法用久了之後,就會誤以為它是創建實例的方法,而實際上,new方法才是創建實例的方法。
大家謹記,以免面試時踩坑。
首先,先講講這三個方法如何使用。
到這裡,你可能會問,這東西有啥用?
如果你只想寫個腳本,執行一些簡單的程序,那確實沒啥用。你可以不關心這三個方法以及他們的調用,甚至連class類都不用寫,直接def搞定。
但是,如果你想進階,理解面向對象,它們很重要。
python基礎學完之後,怎麼進階,簡單點
python基礎學完之後要學習的內容還有很多:
階段一:Python語言
階段目標:熟練掌握Python多線程並發編程技術,可以編寫爬蟲程序和語音識別軟件
階段二:Linux初級
階段目標:熟練掌握Linux操作系統管理技術,可以搭建幾乎所有Linux環境服務器
階段三:Web開發之Django
階段目標:掌握三大Python後端框架,解決一切前後端Web開發問題
階段四:Web開發之Flask
階段目標:掌握三大Python後端框架,解決一切前後端Web開發問題
階段五:Web框架之Tornado
階段六:docker容器及服務發現
階段七:爬蟲
階段目標:掌握分佈式多線程大型爬蟲技術,能開發企業級爬蟲程序
階段八:數據挖掘和人工智能
階段目標:成為Python數據挖掘分析師,進入人工智能領域,成為IT市場最前沿人才
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/201152.html