On Thu, 16 Aug 2012 10:03:51 -0700, Richard Thomas wrote: > class Foo(object): > def __new__(cls, arg): > if isinstance(arg, list): > cls = FooList > elif isinstance(arg, dict): > cls = FooDict > return object.__new__(cls, arg) > > class FooList(Foo, list): > pass > > class FooDict(Foo, dict): > pass
Did you actually try your code? py> x = Foo([]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 7, in __new__ TypeError: object.__new__(FooList) is not safe, use list.__new__() -- Steven -- http://mail.python.org/mailman/listinfo/python-list