2013-06-05 91 views
0

可以说一个类变量,class Foo是一个Foo对象本身?类变量可以是类的一个实例吗?

例如,我试图为11阶有限域构建一个类,并且我想让一个选定的生成器(2)与这个类关联一个实例。

我心里有:

class FiniteField11: 
    generator = FiniteField11(2) 

    def __init__(self, element): 
     self.elt = element 

这并不编译;我有一个NameError: name 'FiniteField11' is not defined。 我意识到这里有一个鸡或鸡蛋的第一个问题,但是有没有办法实现我想要的?

道歉,如果这是重复的,但我找不到一个。

回答

3

你可以做这样的事情:因为上课的时候被确定指标分析FiniteField11没有定义

class FiniteField11: 
    def __init__(self, element): 
     self.elt = element 
FiniteField11.generator = FiniteField11(2) 

你的代码失败。

1

是的,但是直到class语句结束,名称才会存在。因此,您必须在创建类之后设置此类变量,可能仅在类块下方或实例初始值设定项中。

相关问题