我的脚本有一个非常奇怪的问题,它具有以下结构:
import os
# ... some functions
def function_one():
...
def function_two():
if os.path.isdir(...):
最后一句话有时会失败NoneType has no attribute 'path'
,而且我发现function_two
的修改版本
def function_two():
if os is None:
print function_one
打印None
。因此os
不仅None
,function_one
None
也是sys.modules
。
我想重现错误,但根本不知道在哪里寻找原因,我没有全局变量而且我不修改os
。
是否有人知道None
如何成为os
?如果不使用名称为function_one
和{{1}}的全局变量,我无法模拟这个......
答案 0 :(得分:0)
如果PYTHONPATH中有另一个名为os的模块,则可能会导入。正如人们在评论中提到的那样,另一个模块也可以在sys.modules中或通过导入模块来修补os模块。