[英]Inherit from two classes (either or)
我對類繼承有以下問題。 給定類A
, B
, C
如下
class A(object):
...
class B(A):
...
class C(A):
...
我想要一個D
類,它可以從B
或C
繼承,具體取決於用例。 現在,我已經通過動態類定義解決了這個問題:
def D(base_class, parameter1, parameter2):
class D(base_class):
...
return D(parameter1, parameter2)
這是正確的方法,還是有更好的方法來解決這個問題?
與其讓D
創建一個類並返回一個實例,不如讓它只返回該類,然后您可以根據需要使用它來創建多個實例。
def make_D(base_class):
class D(base_class):
...
return D
DB = make_D(B)
DC = make_D(C)
d1 = DB(...)
d2 = DC(...)
d3 = DC(...)
此時,您應該考慮是否真的需要一個工廠函數來定義您的子類,而不是簡單地直接定義DB
和DC
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.