首页 > 解决方案 > 有没有办法从类体内获取第一个基类?

问题描述

一个例子来说明:

class Base:
    value = 'foo'

class Derived(Base):
    value = super().value + 'bar'

super不能从没有参数的类体中调用。我正在寻找一种可以放置在类主体中的通用语法,无论类的名称或其基类如何,都可以从其(第一个)基类中获取类属性。它存在吗?

标签: pythonpython-3.x

解决方案


您可以使用 a来设置里面metaclass的类变量的值:valueDerived

也许是这样的:

class Base(type):
    value = 'foo'
    def __init__(self, name, bases, namespace):
        self.value = Base.value + self.value

class Derived(metaclass=Base):
    value = 'bar'

Derived.value, Base.value

输出:

('foobar', 'foo')

推荐阅读