I want to instrument a class via a decorator, to add some instance variables that are specified by the author of the class.
I started with the following code, but this just adds class variables and I want instance variables (those that are normally 'declared' in __ init __)
What is a pythonic way to do this, while allowing the class author control over what they put in __ init __?
def add_list_attributes(klass):
for attribute in klass.list_attributes:
setattr(klass, attribute, [])
return klass
@add_list_attributes
class Person(object):
list_attributes = [
'phone_numbers'
]
def __init__(self):
pass
p1 = Person()
p1.phone_numbers.append('01234')
print p1.phone_numbers