2013-06-05 46 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語句結束,名稱纔會存在。因此,您必須在創建類之後設置此類變量,可能僅在類塊下方或實例初始值設定項中。

相關問題