Mark English wrote:
As youself already mentioned that maybe you have to impose certain
prerequisites, you maybe want to extend this to the point where for each
class you want to make dynamically instantiatable you need some
declaration. This of course depends on your desired application - whatfor
is it planned?
If this only has to work for classes created for the purpose (rather than for an arbitrary class):
Py> class Buildable(object): ... __slots__ = ["x", "y"] ... def __init__(self, **kwds): ... super(Buildable, self).__init__(self, **kwds) ... for attr in Buildable.__slots__: ... setattr(self, attr, kwds[attr]) ... Py> b = Buildable(x = 1 , y = 2) Py> b.x 1 Py> b.y 2
(Note that you don't *have* to use slots, you can use a non-special class attribute if you don't want the other side effects)
Cheers, Nick.
-- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list