我正在尝试从类内部访问模块级变量。我使用global
关键字将变量定义为全局变量,但是它仍然试图正确地访问抱怨的局部变量,因此未定义局部变量。我已经尝试了各种方法,我知道如何使它引用正确的变量无济于事,而且我没有选择余地。救命!
我尝试使用global
关键字(duh!)。我已经尝试过使用模块路径取消引用,但是它也不喜欢。我已经在模块,类和函数的本地级别定义了相同名称的变量,即使使用global关键字,它也只能识别本地变量。
当所有内容都在一个模块中时,它工作正常,但是当我尝试组织代码并将其放在自己的模块中时,它无法识别该变量。
# Will be a threading Condition variable, initialized from another module
__output = None
class StreamingHandler(server.BaseHTTPRequestHandler):
def preview(self):
global __output
with __output.condition:
...
这将返回错误:name '_StreamingHandler__output' is not defined
。
这表明未定义局部变量,并且global
关键字无效。我已经能够通过在各种范围内定义变量来验证这一点。