python中的三種類的方法、定義及調用

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):

調用:實例對象和類對象都可以調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章