Possible Duplicate:
Subclassing Python tuple with multiple __init__ arguments如何在Python中初始化元組的一個子類的實例?
我想定義從tuple
繼承的類,並且我希望能夠使用不受tuple
支持的語法來實例化。舉一個簡單的例子,假設我想定義一個類MyTuple
,它繼承自tuple
,我可以通過傳遞兩個值x
和y
來實例化,以創建(我的)元組(x, y)
。我試過下面的代碼:
class MyTuple(tuple):
def __init__(self, x, y):
print("debug message")
super().__init__((x, y))
但是,當我嘗試,例如,MyTuple(2, 3)
我得到了一個錯誤:TypeError: tuple() takes at most 1 argument (2 given)
。看來我的__init__
函數甚至沒有被調用(根據我得到的錯誤和事實,我的「調試消息」沒有打印)。
那麼有什麼正確的方法來做到這一點?
我正在使用Python 3.2。
您可能需要查看[''collections.namedtuple()''](http://docs.python.org/dev/library/collections.html#collections.namedtuple)。 –
請檢查[這個原始的SO問題](http://stackoverflow.com/questions/1565374/subclassing-python-tuple-with-multiple-init-arguments)的全面答案(1)爲什麼你需要使用' __new__'而不是'__init__'(2)你需要遵循什麼其他步驟。 –