<分区> 分区>
我不禁想知道...
配置:
mathieu@mathieu-UX21E:~/$ python --version
Python 2.7.5+
代码:
import logging
logger = logging.getLogger('x')
def main():
print logger
logger = 2
if __name__ == "__main__":
main()
输出:
mathieu@mathieu-UX21E:~/$ python ./manager.py
Traceback (most recent call last):
File "./manager.py", line 9, in <module>
main()
File "./manager.py", line 5, in main
print logger
UnboundLocalError: local variable 'logger' referenced before assignment
显然,我希望打印语句访问全局定义的记录器变量。关于 python 变量作用域规则,我有什么不明白的地方吗?
此外,很明显,logger = 2 语句不应该做太多事情。但是,如果我删除它, undefined variable 异常就会消失。
