每个子类都包含自己的列表吗?

时间:2015-01-08 18:25:18

标签: python class python-3.x subclass class-variables

我希望有一个基类,它会使每个子类包含一个列表,而不需要为每个子类手动执行它? 例如,当我从Subclass创建BaseClass时,我希望我的Subclass自动拥有element_list列表。 目前我这样做:

class BaseClass:
    element_list = ['Base Element', 'More Element\'s']
    def do_stuff(): pass

class Subclass(BaseClass):
    # Replaces BaseClass' element_list
    element_list = ['Sub Element', 'More Sub Element\'s']
    def do_sub_stuff(): pass

现在看来,这似乎很容易手动完成,但我希望这个类系统尽可能方便用户,因为对于那些不太了解它的人来说(基本上只读过)一个热门的教程来制作这些子类),并且大多数类都会有一个空的element_list,或者在定义类之后在代码中添加了元素。

我喜欢拥有它,以便默认情况下有一个空列表,即使未在子类中手动定义,并且每个子类都会自动拥有自己的唯一列表。

这可能吗?

1 个答案:

答案 0 :(得分:3)

将可变对象作为类属性几乎绝不是一个好主意。只需使用元组,如果需要修改列表,可以随时覆盖属性。

相关问题