[EMAIL PROTECTED] wrote:
> I'd like to create objects on the fly from a pointer to the class 
> using:  instance = klass()  But I need to be able to pass in variables 
> to the __init__ method.  I can recover the arguments using the 
> inspect.argspec, but how do I call __init__ with a list of arguments 
> and have them unpacked to the argument list rather than passed as a 
> single object?
>
> ie. class T:
>       def __init__(self, foo, bar):
>               self.foo = foo
>               self.bar = bar
>
> argspec = inspect.argspec(T.__init__)
> args = (1, 2)
>
> ??? how do you call T(args)?
>   
The star operator allows you to do this:
T(*args)


You also can use dict for keyword arguments using the double-star operator:

class T(object):
    def __init__(self, foo=None, bar=None):
       self.foo = foo
       self.bar = bar

kwargs = {'bar': 1, 'foo': 2}
T(**kwargs)


RB

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to