1

我写了一个简单的python模块,它有这样的代码:

_log = logging.getLogger("mymodule")
_started = False

def set_log_level(level):
    _log.setLevel(level)
    if not _started:
        _hdlr = logging.FileHandler('mymodule.log')

当我调用程序失败时,因为找不到set_log_level()符号。_started这是正常的,因为global _started方法中缺少。但我的问题是:符号_log与 具有相同的可见性_started,那么为什么可以找到这个符号呢?

4

1 回答 1

4

我不认为您的程序因您认为的原因而失败。global除非您实际修改该变量,否则无需在函数中使用声明。(否则,您需要使用 global 来访问该命名空间中的某些内容,甚至调用其他函数。)

我不确定当您运行程序时实际发生了什么——也许您可以提供问题的回溯或描述。

于 2011-11-23T17:47:06.333 回答