2024-04-24 12:23:21 发布
网友
在python中,有没有一种方法可以在“static constructor”中获取类名?我想用继承的类方法初始化一个类变量。在
class A(): @classmethod def _getInit(cls): return 'Hello ' + cls.__name__ class B(A): staticField = B._getInit()
NameError: name 'B' is not defined
在执行完整的class套件并创建一个class对象之前,B名称不会被分配给。出于同样的原因,类上的__name__属性在创建class对象之前也不会设置。在
class
B
__name__
之后必须指定该属性:
class A(): @classmethod def _getInit(cls): return 'Hello ' + cls.__name__ class B(A): pass B.staticField = B._getInit()
另一种方法是使用类装饰器(传递新创建的类对象)或使用元类(它首先创建类对象并指定要使用的名称)。在
在执行完整的
class
套件并创建一个class对象之前,B
名称不会被分配给。出于同样的原因,类上的__name__
属性在创建class对象之前也不会设置。在之后必须指定该属性:
另一种方法是使用类装饰器(传递新创建的类对象)或使用元类(它首先创建类对象并指定要使用的名称)。在
相关问题 更多 >
编程相关推荐