(11)python靜態方法 類方法與例項方法

2021-09-08 21:47:42 字數 1342 閱讀 2258

靜態方法:指的是類中無需例項引數化即可呼叫的方法(不需要self引數),在呼叫過程中,無需將類例項化,直接在類之後使用.號運算子呼叫方法。

通常情況下,靜態方法使用@staticmethod裝飾器來宣告。

class classa(object):

@staticmethod

def func_a():

print("hello world")

#也可以使用例項呼叫,但是不會將例項作為引數傳入靜態方法

ca = classa()

ca.func_a()

#也可以只通過類去呼叫這個方法

#無@staticmethod

通過上面的例子,可以看出:因為func_a沒有宣告為靜態方法,類例項在呼叫func_a時,會隱式地將self引數傳入func_a,而func_a本身不接受任何引數,從而引發異常。 

在python中使用的比較少,類方法傳入的第乙個引數為cls,是類本身,並且類方法可以通過類直接呼叫,或者通過例項直接呼叫。不管是用哪種方法,最左側傳入的引數一定是類本身。

通常情況下,類方法使用@classmethod裝飾器來宣告

通過上述例子可以看出,無論使用的是例項呼叫還是類方法都可以正常工作。列印的cls,看出cls傳入的是例項本身。

例項方法:除靜態方法與類方法以外,類的其他方法都屬於例項方法。

例項方法需要將例項化後呼叫,如果使用類直接呼叫例項方法,需要顯式的將例項作為引數傳入。

最左側傳入的引數是self,是例項本身。

Python 類方法 靜態方法

1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些物件方法與函式的區別只是乙個額外的self變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.name n...

Python 靜態方法 類方法

一 靜態方法 乙個不能訪問例項變數和類變數的方法,它與類唯一的關聯就是需要通過類名來呼叫這個方法。class person object def init self,name self.name name def eat self print s is eating self.name static...

python靜態方法 類方法

常規 1 class dog object 2def init self,name 3 self.name name45 defeat self 6print s is eating self.name 78 d1 dog lele 9 d1.eat 1.靜態方法 名義上由類管理,而實際在呼叫時,需...