[英]Inheritance vs class instance in python module import
抱歉,如果這沒有意義,我不是一個經驗豐富的程序員。
請考慮以下代碼:
import mymodule
class MyClass:
def __init__(self):
self.classInstance = myModule.classInstance()
然后 ......
from mymodule import classInstance
class MyClass(classInstance):
def __init__(self):
pass
如果我只是想在MyClass中使用一個classInstance,是否可以從模塊中導入特定的類並讓MyClass繼承這個類?
在決定這兩種方法時,是否有任何最佳實踐或我應該考慮的事項?
非常感謝
請允許我提出一個不同的例子。
想象一下,有了Vector類。 現在你想要一個Point Point。 Point可以用向量定義,但也許它具有Vector沒有的其他額外功能。 在這種情況下,您從Vector派生Point。
現在你需要一個Line類。 Line不是上述任何類的特化,因此您可能不希望從它們中的任何類派生它。 但Line使用積分。 在這種情況下,您可能希望以這種方式啟動Line類:
class Line(object):
def __init__(self):
self.point1 = Point()
self.point2 = Point()
哪個點會是這樣的:
class Point(Vector):
def __init__(self):
Vector.__init__(self)
所以答案是真的:取決於你需要做什么,但是當你清楚地知道你編碼的是什么時,在子類別之間進行選擇之間的選擇就變得很明顯了。
我希望它有所幫助。
你讓它聽起來像是在嘗試“選擇”這兩種方法,但它們完全不同。 第二個定義了一個類,它繼承自一個叫做classInstance
的類(容易引起混淆)。 第一個定義了一個名為MyClass
的類(不是從基礎obect
類型繼承的類),它有一個名為self.classInstance
的實例變量,它恰好被設置為classInstance
類的一個實例。
你為什么要命名你的class classInstance
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.