在定义类之前创建类的实例?

时间:2010-07-23 00:23:44

标签: python class

以下是我的问题的一个例子:

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

class foo() :
    eggs = 50

问题(我假设)是我在定义类之前尝试创建类的实例。显而易见的解决方案是重新排序我的课程,但我喜欢按字母顺序保留我的课程(也许是一种愚蠢的练习)。有没有办法同时定义我的所有类?我只需要咬紧牙关并重新排序我的班级定义吗?

1 个答案:

答案 0 :(得分: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语句(我已经也是这样做的; - )。