回覆列表
  • 1 # 使用者3284374537321

    在學習如何定義類的過程中,無論是顯式建立類的構造方法,還是向類中新增例項方法,都要求將 self 引數作為方法的第一個引數。例如,定義如下 Dog 類:

    1

    2

    3

    4

    5

    6

    class Dog:

    def __init__(self):

    print("正在執行構造方法")

    # 定義一個jump()例項方法

    def jump(self):

    print("正在執行jump方法")

    Python 要求,類方法(構造方法和例項方法)中至少要包含一個引數,但並沒有規定此引數的名稱(完全可以叫任意引數名),之所以將類方法的第一個引數命名為 self,只是 Python 程式設計師約定俗成的一種習慣,這會使程式具有更好的可讀性。

    也就是說,同一個類可以產生多個物件,當某個物件呼叫類方法時,該物件會把自身的引用作為第一個引數自動傳給該方法,換句話說,Python 會自動繫結類方法的第一個引數指向呼叫該方法的物件。如此,Python直譯器就能知道到底要操作哪個物件的方法了。對於構造方法來說,self 引數(第一個引數)代表該構造方法正在初始化的物件。

    因此,程式在呼叫例項方法和構造方法時,不需要為第一個引數傳值。例如,更改前面的 Dog 類,如下所示:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    class Dog:

    def __init__(self):

    print(self,"在呼叫構造方法")

    # 定義一個jump()方法

    def jump(self):

    print(self,"正在執行jump方法")

    # 定義一個run()方法,run()方法需要藉助jump()方法

    def run(self):

    print(self,"正在執行run方法")

    # 使用self引數引用呼叫run()方法的物件

    self.jump()

    dog1 = Dog()

    dog1.run()

    dog2 = Dog()

    dog2.run()

  • 中秋節和大豐收的關聯?
  • 每月還房貸1500?