class Foo(tuple):

    def __new__(cls, a, b):
        return super(Foo, cls).__new__(cls, tuple(b))

def __init__(self, a, b):
    self.a = a
self.b = b
if __name__ == '__main__':
    foo = Foo(None, [3, 4])
print(foo)
Subclassing Python tuple with multiple __init__ arguments