Python中有重寫和過載的方法嗎?

o蹲蹲o發表於2024-03-17

問1:Python中有重寫和過載的方法嗎?

  • 先說結論:Python因為語言的特性,沒有過載,但是有重寫的方法。

問2:什麼是重寫?

  • 1. 先看程式碼:
class Calculator:
    def add(self, a, b):
        print("我執行了嗎?")
        return a + b + 100

    def add(self, a, b):
        return float(a) + float(b)


cal = Calculator()
print(cal.add(5, 3))
print(cal.add(5.5, 3.3))
  • 2. 執行示例:

Python中有重寫和過載的方法嗎?

問3:什麼是過載?

  • 1.先看程式碼:

class Animal:
    def sound(self):
        print("動物叫")


class Dog(Animal):
    def sound(self):
        print("狗叫")


dog = Dog()
dog.sound()
  • 2.執行結果:

Python中有重寫和過載的方法嗎?

總結:

  • 過載定義:

    • 同一個類中定義了多個同名的方法。
    • 在其他語言會根據輸入的型別不同,自動找到要執行的那個。
    • 而python是動態語言,所以不支援傳統意義上的過載。
    • (個人理解:過載過載,就是重複載入嘛,這裡的重是指“重複”)
  • 重寫定義:

    • 子類重新定義繼承自父類的方法。
    • Python完全支援重寫。
    • 當子類中定義了與父類相同名稱的方法時,呼叫子類的該方法會覆蓋父類的同名方法,這就是所謂的重寫。
    • 個人理解:重寫就是,老師說你寫的不對,重新寫一遍唄。就是繼承了老師的寫法,但自己又重寫了一遍。這裡的重是指“重新,又一次

附:重的含義

Python中有重寫和過載的方法嗎?

參考資料:

51部落格:https://blog.51cto.com/u_16213422/7210802

https://www.cnblogs.com/mic112/p/15478708.html

過載和重寫的定義,來自:GPT-4-Turbo

相關文章