python之面相對象進階,python面向對象特點

本文目錄一覽:

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-hant/n/201152.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-06 11:30
下一篇 2024-12-06 11:30

相關推薦

發表回復

登錄後才能評論