2010-07-23 46 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语句(我也这么做过;-)。

相关问题