tuple is an immutable type. It is already created and immutable before __init__ even called. That is why it does not work.
If you really want to subclass a tuple, use __new__ .
>>> class MyTuple(tuple): ... def __new__(typ, itr): ... seq = [int(x) for x in itr] ... return tuple.__new__(typ, seq) ... >>> t = MyTuple((1, 2, 3)) >>> t (1, 2, 3)
user225312
source share