self 防衛
- 其中一項大家抱怨 Python 的地方(除了空白的使用之外),就是實例方法的「第一個引數必須使用 self」
- Python 會使用 self 引數來「尋找正確物件的屬性與方法」
→ 會讓你看到,該如何呼叫某個物件的方法,以及 Python 會在幕後做哪些事情
【範例】呼叫 exclaim() 方法
>>> class 類別名稱():
def exclaim(self):
print("字串")
>>> 文字 = 類別名稱()
>>> 文字.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!