卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python教程 python靜態(tài)方法作用?

python靜態(tài)方法作用?主要用于在類中封裝一個額外的功能,但是使用時我們并不希望調(diào)用的時候還先要創(chuàng)建實(shí)例化對象,與類本身沒有聯(lián)系,相當(dāng)于類中一個獨(dú)立的函數(shù)。python為什么要使用靜態(tài)方法?Pyth

python靜態(tài)方法作用?

主要用于在類中封裝一個額外的功能,但是使用時我們并不希望調(diào)用的時候還先要創(chuàng)建實(shí)例化對象,與類本身沒有聯(lián)系,相當(dāng)于類中一個獨(dú)立的函數(shù)。

python為什么要使用靜態(tài)方法?

Python使用靜態(tài)方法類似函數(shù)工具使用,一般盡量少用靜態(tài)方法。

Python的靜態(tài)方法和類成員方法都可以被類或?qū)嵗L問,兩者概念不容易理清,但還是有區(qū)別的:

1.靜態(tài)方法無需傳入self參數(shù),類成員方法需傳入代表本類的cls參數(shù);

2.從第1條,靜態(tài)方法是無法訪問實(shí)例變量的,而類成員方法也同樣無法訪問實(shí)例變量,但可以訪問類變量;

3.靜態(tài)方法有點(diǎn)像函數(shù)工具庫的作用,而類成員方法則更接近類似Java面向?qū)ο蟾拍钪械撵o態(tài)方法。

python類方法和靜態(tài)方法有什么用?

Python中至少有三種比較常見的方法類型,即實(shí)例方法,類方法、靜態(tài)方法。它們是如何定義的呢?如何調(diào)用的呢?它們又有何區(qū)別和作用呢?且看下文。

首先,這三種方法都定義在類中。下面我先簡單說一下怎么定義和調(diào)用的。(PS:實(shí)例對象的權(quán)限最大。)

實(shí)例方法

定義:第一個參數(shù)必須是實(shí)例對象,該參數(shù)名一般約定為“self”,通過它來傳遞實(shí)例的屬性和方法(也可以傳類的屬性和方法);

調(diào)用:只能由實(shí)例對象調(diào)用。

類方法

定義:使用裝飾器@classmethod。第一個參數(shù)必須是當(dāng)前類對象,該參數(shù)名一般約定為“cls”,通過它來傳遞類的屬性和方法(不能傳實(shí)例的屬性和方法);

調(diào)用:實(shí)例對象和類對象都可以調(diào)用。

靜態(tài)方法

定義:使用裝飾器@staticmethod。參數(shù)隨意,沒有“self”和“cls”參數(shù),但是方法體中不能使用類或?qū)嵗娜魏螌傩院头椒ǎ?/p>

調(diào)用:實(shí)例對象和類對象都可以調(diào)用。

實(shí)例方法

簡而言之,實(shí)例方法就是類的實(shí)例能夠使用的方法。這里不做過多解釋。

類方法

使用裝飾器@classmethod。

原則上,類方法是將類本身作為對象進(jìn)行操作的方法。假設(shè)有個方法,且這個方法在邏輯上采用類本身作為對象來調(diào)用更合理,那么這個方法就可以定義為類方法。另外,如果需要繼承,也可以定義為類方法。

如下場景:

假設(shè)我有一個學(xué)生類和一個班級類,想要實(shí)現(xiàn)的功能為:

執(zhí)行班級人數(shù)增加的操作、獲得班級的總?cè)藬?shù);

學(xué)生類繼承自班級類,每實(shí)例化一個學(xué)生,班級人數(shù)都能增加;

最后,我想定義一些學(xué)生,獲得班級中的總?cè)藬?shù)。

思考:這個問題用類方法做比較合適,為什么?因?yàn)槲覍?shí)例化的是學(xué)生,但是如果我從學(xué)生這一個實(shí)例中獲得班級總?cè)藬?shù),在邏輯上顯然是不合理的。同時,如果想要獲得班級總?cè)藬?shù),如果生成一個班級的實(shí)例也是沒有必要的。

Python中的classmethod和staticmethod有什么具體用途?

classmethod和staticmethod在不需要實(shí)例化的情況下,能夠讓類方法在類以外直接調(diào)用。

區(qū)別在以下兩個方面:

1.classmethod類方法,必須把類作為第一個參數(shù),「可以訪問類變量」,可以通過實(shí)例名或類名訪問;

2.staticmethod靜態(tài)方法,不強(qiáng)制傳入self或者cls,對類和實(shí)例都一無所知(相當(dāng)于把類方法變成一個普通的方法,與類無關(guān)),「不能訪問類變量」,「也不能訪問實(shí)例變量」;可以通過實(shí)例名或類名訪問。


具體用途為:

1.classmethod類方法,依賴self或者cls傳參,所以必須寫在類里,與類強(qiáng)關(guān)聯(lián),可以在類之外,訪問類變量;

2.staticmethod靜態(tài)方法,完全獨(dú)立于類,因此不能訪問類方法。


就那么簡單,根據(jù)是否需要訪問類變量,取決于是否需要訪問類方法。


說通俗點(diǎn),就是方便在沒有實(shí)例化的情況下,直接調(diào)用類方法,上述兩個東西都能實(shí)現(xiàn)該目的。