有必要创建许多相同类型的类,其中事实上唯一的类变量不同。我记得我为这个类创建语法做了一个实现:class Token001(Token, "вот эта строчка в ту самую переменную"): pass,但是,在我的一生中,我不记得通过实例构造函数__new__或__init_subclass__. 基本上,通过 on 方法的实现尝试以TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases. 我在某个地方很愚蠢,但这里有一些山:/
#class Token(object): ...
class Sign(object): #(Token):
keyword = None
def __init_subclass__(cls, keyword):
cls.keyword = keyword
class Sign001(Sign, "sign 001"): pass
class Sign002(Sign, "sign 002"): pass
#...
Traceback (most recent call last):
File "C:\Users\Shamus_Rezol\Desktop\dwe.py", line 11, in <module>
class Sign001(Sign, "sign 001"): pass
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
通过差不多__new__。我不明白怎么了?
是的,你可以改写pass,keyword = ..但这个实现对我来说并不有趣。
位置参数用于枚举基类,你的
keyword必须命名。