I am trying to do something like this:
property = 'name'
value = Thing()
class A:
setattr(A, property, value)
other_thing = 'normal attribute'
def __init__(self, etc)
#etc..........
But I can't seem to find the reference to the class to get the setattr
to work the same as just assigning a variable in the class definition. How can I do this?
You can do it even simpler:
class A():
vars()['key'] = 'value'
In contrast to the previous answer, this solution plays well with external metaclasses (for ex., Django models).
You'll need to use a metaclass for this:
property = 'foo'
value = 'bar'
class MC(type):
def __init__(cls, name, bases, dict):
setattr(cls, property, value)
super(MC, cls).__init__(name, bases, dict)
class C(object):
__metaclass__ = MC
print C.foo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With