python中的三種類的方法、定義及調用
一、實例方法(instance method)
1、實例化方法如何定義及調用:
class Foo(object):
def instance_method(self):
print("是類{}的實例方法,只能被實例對象調用".format(Foo))
foo = Foo()
foo.instance_method()
定義:第一個參數必須是實例對象,該參數名一般爲“self”,通過它來傳遞實例的屬性和方法(也可以傳類的屬性和方法);
訪問:可以通過self訪問實例屬性。
def instance_method(self,data):
調用:只能由實例對象調用。
2、如何實例化對象:
創建一個類,類名稱第一個字母大寫,可以帶括號也可以不帶號,python中實例化類沒有new關鍵字,類的實例化 foo = Foo()類似函數調用方式。
二、靜態方法(static method)
class Foo(object):
@staticmethod
def static_method():
print("是靜態方法")
foo = Foo()
foo.static_method()
Foo.static_method()
定義: 用裝飾器@staticmethod 寫靜態方法,在方法中不需要訪問任何實例方法和屬性,是純粹地通過傳入參數並返回數據的功能性方法。
訪問:不可以訪問,通過傳值的方式
@staticmethod
def static_method(data):
調用:實例對象和類對象都可以調用。
三、 類方法(class method)
class Foo(object):
@classmethod
def class_method(cls):
print("是類方法")
foo = Foo()
foo.class_method()
Foo.class_method()
定義:至少需要一個cls參數,通過cls可以獲取到類本身的屬性方法等元信息。當有個子類繼承時,傳入的是子類對象。
訪問:可以通過cls訪問類屬性:
@classmethod
def class_method(cls):
調用:實例對象和類對象都可以調用。