可能重複:
Python dynamic inheritance: How to choose base class upon instance creation?動態派生類在python
我想一個類來選擇基於初始化方法的參數上飛的基類。
Class A():
#...
Class B():
#...
Class C():
def __init__(self, base_type):
if parent_type == 'A':
#TODO: make C derive A
else:
#TODO: make C derive B
A和B是派生相同基類的庫類。
a similar question的答案顯得太難看了。
你爲什麼要這樣做?儘管Python等動態語言中可能有很多事情,但這似乎並不是一個好的方法。有了更多的上下文,我們可能能夠更好地瞭解您的問題並提供解決方案。 – cyroxx
你真的需要使用繼承嗎?你可以用組合來代替(例如讓每個C實例擁有A或B的實例)?查看您鏈接的問題的第二個高度評價的答案。 – Blckknght
如果您堅持不使用工廠模式,您可能需要研究元類。 http://docs.python.org/py3k/reference/datamodel.html#metaclasses – dsh