Calling a constructor by reference

Edwin Young edwin at bathysphere.org
Thu Oct 7 15:53:06 CEST 2004


Hi,

I know there must be a way to do this but the correct syntax eludes me.

I want to write a method which I can pass different types to and have
it construct them.

I tried this:

>>>
class X:
    def __init__(self):
        pass

def make_thing(type,*args):
    return type(args)

x = X()
y = make_thing(X)

print x, y 
>>>

But get 'TypeError: __init__() takes exactly 1 argument (2
given)'. Presumably X is treated as an unbound instance method?

Also, the types I want to create inherit from an old-style class in a
package, so I don't think I can make X a new-style class (if that's
relevant).

How should I go about this?

Thanks,
--
Edwin





More information about the Python-list mailing list