2010-07-23 45 views
0

這裏是我的問題的一個例子:在定義類之前創建一個類的實例?

class bar() : 
    spam = foo() 
    def test(self) : 
     print self.spam.eggs 
     pass 

class foo() : 
    eggs = 50 

問題(我認爲)是我想要被定義的類之前創建一個類的實例。顯而易見的解決方案是重新排序我的課程,但我喜歡按照字母順序保留課程(也許是一個愚蠢的做法)。有什麼方法可以同時定義我所有的類嗎?我只需要咬下子彈並重新排序我的類定義?

+0

這是合理的原因,你應該按文件分類。 – 2010-07-23 00:28:29

回答

6

字母順序確實是一個愚蠢的想法;-)。儘管如此,各種可能性包括:

class aardvark(object): 
    eggs = 50 

class bar(object): 
    spam = aardvark() 
    def test(self) : 
     print self.spam.eggs 

foo = aardvark 

class bar(object): 
    spam = None # optional!-) 
    def test(self) : 
     print self.spam.eggs 

class foo(object): 
    eggs = 50 

bar.spam = foo() 

注意,更重要的方面不是「按字母順序」包括使各階層「新風貌」(我在這兩個例子中做了以上)並刪除完全冗餘的代碼,如pass語句(我也這麼做過;-)。

相關問題