类变量中的Python静态继承

时间:2016-08-24 12:50:23

标签: python oop static

在python中,有没有办法在"静态构造函数"中获取类名?我想使用继承的类方法初始化一个类变量。

class A():
    @classmethod
    def _getInit(cls):
        return 'Hello ' + cls.__name__

class B(A):
    staticField = B._getInit()
  

NameError:name' B'未定义

1 个答案:

答案 0 :(得分:6)

在执行完整的.anim { color:red; -webkit-animation: hue 2s infinite linear; } 套件并创建了一个类对象之前,未分配名称B。出于同样的原因,在创建类对象之前,不会设置类的class属性。

您之后必须分配该属性:

__name__

另一种方法是使用类装饰器(传递新创建的类对象)或使用元类(首先创建类对象并给出要使用的名称)。