正确初始化导入模块我有一个文件test.py
:可以用Python
import logging
def func():
logger.info('some info')
if __name__ == '__main__':
logger = logging.getLogger()
func()
其中运行良好。当我从另一个文件中测试导入func并调用func()
方法时,它会给我带来global name 'logger' is not defined
错误。
from test import func
def another_fun():
func()
即使我把another_func()
logger = logging.getLogger()
调用func()
之前,它仍然给了我这样的错误。我想知道在这种情况下,通过适当的初始化从其他文件导入函数的标准方式是什么。非常感谢。
我认为'func()'不能识别'logger'作为一个全局变量,因为你没有告诉它这么做。你有没有尝试之前添加一个'全球记录器'行?看看这个:http://stackoverflow.com/questions/423379/using-global-variables-in-a-function-other-than-the-one-that-created-them – tomasyany
这是因为你定义'记录器'在'main'部分,所以它永远不会被导入。 –