self 防衛

  • 其中一項大家抱怨 Python 的地方(除了空白的使用之外),就是實例方法的「第一個引數必須使用 self」
  • Python 會使用 self 引數來「尋找正確物件的屬性與方法」 → 會讓你看到,該如何呼叫某個物件的方法,以及 Python 會在幕後做哪些事情

【範例】呼叫 exclaim() 方法

>>> class 類別名稱():
        def exclaim(self):
            print("字串")
>>> 文字 = 類別名稱()
>>> 文字.exclaim()              # 物件當成「self 參數」,傳給「類別」的「exclaim() 函式方法」
字串
>>> class Car():
    def exclaim(self):
        print("I'm a Car!")

>>> car = Car()                 # 查看物件 car 的類別(Car)
>>> car.exclaim()               # 將物件 car 當成 self 參數,傳給 Car 類別的 exclaim() 方法
I'm a Car!
  • Python 在私底下做的事情:
    • 查看物件 car 的類別(Car)
    • 將物件 car 當成 self 參數,傳給 Car 類別的 exclaim() 方法

【範例】

  • 這只是為了好玩,也可以用這種方式來執行它
  • 動作會與一般的語法一樣(car.exclaim())
>>> class 類別名稱():
        def exclaim(self):
            print("字串")
>>> 文字 = 類別名稱()
>>> 類別名稱.exclaim(文字)
字串
>>> class Car():
    def exclaim(self):
        print("I'm a Car!")

>>> car = Car()
>>> Car.exclaim(car)            # 動作會與一般的語法一樣(car.exclaim()) → 但是,沒有理由使用較長的格式
I'm a Car!

results matching ""

    No results matching ""