繁体   English   中英

类变量可以是该类的实例吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM