I am sorry if this is obvious, but I am not seeing it. How would I go about creating a new type that is of the same type as a class sent into the function?
new = foo.__init__() refers to the current foo, not a new fresh instance of my class. The only way I can think of is to make a large if-elif chain of isinstances, but that loses the generality I am after.
It looks like you want to create a new _instance_ of the same type as an _instance_ passed in to a function. If this is correct, you can do this by:
py> def new(obj): ... return type(obj)() ... py> new('s') '' py> new(3) 0 py> new(['a', 'b']) [] py> new((5.3, 3j)) ()
If you need to support old-style classes, replace type(obj) with obj.__class__.
If this is not the question you meant to ask, could you reword things? Creating a new _type_ that is the same _type_ as something else doesn't make much sense to me. If it's a new _type_, then it shouldn't be the same as any existing type.
STeVe -- http://mail.python.org/mailman/listinfo/python-list