以下是我的问题的一个例子:
class bar() :
spam = foo()
def test(self) :
print self.spam.eggs
pass
class foo() :
eggs = 50
问题(我假设)是我在定义类之前尝试创建类的实例。显而易见的解决方案是重新排序我的课程,但我喜欢按字母顺序保留我的课程(也许是一种愚蠢的练习)。有没有办法同时定义我的所有类?我只需要咬紧牙关并重新排序我的班级定义吗?
答案 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
语句(我已经也是这样做的; - )。