【发布时间】:2012-09-30 14:04:07
【问题描述】:
我在同一个模块中定义了两个类,并想在第一个中使用第二个(作为全局变量):
class Class1(object):
global_c2 = Class2()
def foo(self):
local_c2 = Class2()
class Class2(object):
pass
global_c2 出现错误,但 local_c2 没有。这是有道理的,因为当编译器查看这个文件时,它不会知道 Class2 将会存在。此外,如果我切换类以便首先定义 Class2 它可以工作。
但是我想知道是否有其他方法可以解决这个问题。也许我可以以某种方式告诉 python Class2 将会存在所以不用担心,还是我只需要将它们按正确的顺序排列?
【问题讨论】:
-
@AshwiniChaudhary 缩进正确。好吧,
self参数暗示foo是一种方法,但它可以以任何一种方式工作,并且无论哪种方式都可以很好地说明问题。 -
函数
foo()属于哪里? -
@AshwiniChaudhary 它本身只是一个函数,对吗?
-
当我粘贴它时,缩进发生了变化。现已修复
-
基本上,你必须把它们按正确的顺序排列。
标签: python class module global local