在python中,有没有办法在"静态构造函数"中获取类名?我想使用继承的类方法初始化一个类变量.
class A():
@classmethod
def _getInit(cls):
return 'Hello ' + cls.__name__
class B(A):
staticField = B._getInit()
Run Code Online (Sandbox Code Playgroud)
NameError:未定义名称"B"
B在完成整个class套件并创建了一个类对象之前,不会分配该名称.出于同样的原因,在__name__创建类对象之前,不会设置类的属性.
您之后必须分配该属性:
class A():
@classmethod
def _getInit(cls):
return 'Hello ' + cls.__name__
class B(A):
pass
B.staticField = B._getInit()
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用类装饰器(传递新创建的类对象)或使用元类(首先创建类对象并给出要使用的名称).
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |