python中的類方法與靜態方法
面相物件程式設計中,類方法和靜態方法是經常用到的兩個術語。
邏輯上講:類方法是只能由類名呼叫;靜態方法可以由類名或物件名進行呼叫。
類方法:
在python中.類方法 @classmethod 是乙個函式修飾符,它表示接下來的是乙個類方法,而對於平常我們見到的則叫做例項方法。
類方法的第乙個引數cls,而例項方法的第乙個引數是self,表示該類的乙個例項。
classtest():
def__init__
(self,name):
self.a =name
@classmethod #類方法的裝飾器,用於修飾這個方法
def func(cls):#
cls 代表的是class
print('
這是乙個類方法')
if__name__ == '
__main__':
test.func()
#類呼叫
a = test("小王"
) a.func()
#類的例項進行呼叫
注意 :a, 類方法不僅可以通過例項化物件呼叫還可以通過類名稱直接呼叫
b, 不能呼叫建構函式(例項方法)中的屬性變數
c,可以呼叫類變數
靜態方法:
靜態方法是類中的函式,不需要例項。靜態方法主要是用來存放邏輯性的**,主要是一些邏輯屬於類,但是和類本身沒有互動,
即在靜態方法中,不會涉及到類中的方法和屬性的操作。
classtest():
def__init__
(self,name):
self.a =name
@staticmethod
#裝飾器,表示他是乙個靜態方法
deffunc():
print("
這是乙個靜態方法")
if__name__ == '
__main__':
test.func()
#類呼叫
a = test("小王"
) a.func()
#類的例項進行呼叫
注意:
a,靜態方法中沒有預設的形
b,靜態方法需要通過裝飾@staticmethod修飾
c, 靜態方法不僅可以通過例項化物件呼叫還可以通過類名稱直接呼叫
d,不能呼叫建構函式(例項方法)中的屬性變數
e, 不可以呼叫類變數
Python中類的私有方法,類方法,靜態方法等
方法 屬性的型別 方法表示 特點類方法 classmethod def 方法體 則這個方法一般是類的方法,即類.方法。一般不給例項化物件來使用。私有方法 def 方法名 在方法名的前面加 表示這是私有方法。所謂私有方法,就是只能由類本身來使用。其子類不能使用,例項化的物件也不能使用。保護方法 def...
python 類的靜態方法和類方法
1.靜態方法 使用 staticmethod修飾 不需要傳入引數,類和類的例項物件都可以呼叫 沒有引數的方法,如果未宣告靜態方法的話,例項物件呼叫將會出錯 1class a staticmethod 宣告靜態方法 def printa 無需引數 print a a.printa 類名直接呼叫 a a...
Python中類方法和靜態方法
要在類中使用靜態方法,需在靜態方法前面加上 staticmethod標記符,以表示下面的成員函式是靜態函式。使用靜態方法的好處 其函式不需要self引數,可以通過類呼叫該方法,不需要定義該類例項 當然通過類例項呼叫也沒有問題 類方法可以通過類或它的例項來呼叫,但 該方法的 第乙個引數cls是定義該方...