[英]Can a class variable be an instance of the class?
可以说一个类变量,例如class Foo
本身就是Foo
对象吗?
例如,我正在尝试为11阶有限域构建一个类,并且希望将选定的生成器(2)与该类的实例相关联。
我的想法:
class FiniteField11:
generator = FiniteField11(2)
def __init__(self, element):
self.elt = element
这不会编译; 我有一个NameError: name 'FiniteField11' is not defined
。 我意识到这里有先有鸡还是先有蛋的问题,但是有没有办法实现我想要的?
抱歉,如果这是重复的,但我找不到。
您可以执行以下操作:
class FiniteField11:
def __init__(self, element):
self.elt = element
FiniteField11.generator = FiniteField11(2)
您的代码失败,因为在解析类定义时未定义FiniteField11
。
是的,可以,但是在类语句完成之前,该名称不存在。 因此,您必须在创建类之后(可能正好在类块下方或在实例初始化程序中)设置该类变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.