Python - 从列表中生成对象的属性

时间:2014-02-04 20:34:07

标签: python django django-models properties

我希望以这种方式从属性列表中生成一个对象:

class MyClass(MyBaseClass):
    __properties__ = ['property', 'nice_property', 'another_one']

    def __init__(self):
        MyBaseClass.__init__(self)

print(MyClass().property) #prints some default value

可能我可以在基类的 init 中添加所有属性。但后来我必须在每个子类中执行它。我可以避免吗?

1 个答案:

答案 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