小编Jos*_*oyd的帖子

有没有办法从类范围引用对象的基 __class__ ?

我有一系列的类,继承自几个可能的父级之一,这些父级都共享一个基类。parameters每个类都有一个基于基类的类范围 Dict[str, object]parameters

from copy import deepcopy


class BaseClass:
    parameters = {
        'example_param1': ParamObject(name='example_param1', editable=True),
    }


class MiddleClass(Baseclass):
    parameters = {
        **deepcopy(Baseclass.parameters),
        'example_param2': ParamObject(name='example_param2', editable=False),
    }


class ChildClass(MiddleClass):
    parameters = {
        **deepcopy(MiddleClass.parameters),
        'example_param3': ParamObject(name='example_param3', editable=True),
    }
Run Code Online (Sandbox Code Playgroud)

这个实现完成了工作,但我发现这条**deepcopy(Baseclass.parameters),线并不令人满意。随着时间的推移,这些子类将由仅对编码有基本了解的人进行编辑,因此我希望使代码尽可能简单且可剪切粘贴。

我可以在类范围内调用什么来获得 的等价物吗super().__class__?我希望用户能够将基类从 更改为 ,而MiddleClass无需MiddleClass2记住在多个位置更改基类。

python oop superclass python-3.x

3
推荐指数
1
解决办法
389
查看次数

标签 统计

oop ×1

python ×1

python-3.x ×1

superclass ×1