我定義了兩個類,我只想在我的應用程式中使用它們的方法而不實體化它們。我閱讀了很多關于這個的意見,很多人建議在這種情況下使用模塊而不是類。公平競爭,但繼承呢?
假設我有一個 classDog和另一個 class AgressiveDog,它繼承自Dog:
class Dog:
sound = 'Woof'
@classmethod
def bark(cls):
print(cls.sound)
class AgressiveDog(Dog):
@classmethod
def bark(cls):
super().bark()
super().bark()
我會將上面的類翻譯成下面的模塊(如果有更好的方法,請大聲疾呼)。
dog.py:
sound = 'Woof'
def bark():
print('Woof')
agressivedog.py:
import dog
def bark():
dog.bark()
dog.bark()
在這種情況下,解決這個問題的“模塊”方法是否優于類?
對于模塊,我必須為相互關聯的事物創建兩個單獨的 .py 檔案,而且當我在其中作業時,agressivedog.py我必須始終記住顯式使用父級 ( dog.py) 中的方法和屬性。
對于類,我可以將兩個類都放在一個 .py 檔案中,而我唯一的罪行是我不打算實體化這些類。我錯過了什么?
uj5u.com熱心網友回復:
在你的情況下,沒有區別。這里我們討論的是代碼的可擴展性。假設您有 50 類“狗”繼承人。因此,您將有 50 個模塊,這非常糟糕,并且繼承層次結構將非常混亂。我在說什么?如果您了解您的結構將限制為 2-3 個繼承人,則使用模塊,但為了獲得良好的支持、可測驗性和可擴展性,請使用類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/471697.html
