Использование setattr(actual_class_type, attribute_name, default_value)
.
Смотрите пример здесь:
Как я могу добавить свойства в класс, используя декоратор, который принимает список имен в качестве аргумента?
def serialize(clazz):
def inner(actual_class_type):
actual_init = actual_class_type.__init__
def new_init(self, *args, **kwargs):
cool_thing = clazz()
# do stuff
actual_init(self, *args, **kwargs)
actual_class_type.__init__ = new_init
prop_name = "my_prop"
def getAttr(self):
return getattr(self, "_" + prop_name)
def setAttr(self, value):
setattr(self, "_" + prop_name, value)
prop = property(getAttr, setAttr)
setattr(cls, prop_name, prop)
setattr(cls, "_" + prop_name, None) # Default value for that property
return actual_class_type
return inner