我希望以这种方式从属性列表中生成一个对象:
class MyClass(MyBaseClass):
__properties__ = ['property', 'nice_property', 'another_one']
def __init__(self):
MyBaseClass.__init__(self)
print(MyClass().property) #prints some default value
可能我可以在基类的 init 中添加所有属性。但后来我必须在每个子类中执行它。我可以避免吗?
答案 0 :(得分:0)
我认为你想要做的是设置类属性,如下所示:
class MyBaseClass(object):
property = 'default'
nice_prop = 'default'
tralala = 'default'
MyBaseClass的所有子类都可以访问这些属性。以及从该类和子类创建的对象。如果在对象级别覆盖任何类属性,则仅对该对象进行更改。
class SubClass(MyBaseClass):
pass
sub_obj = SubClass()
print sub_obj.property # prints 'default'
sub_obj.property = 'new value'
print sub_obj.property # prints new value