gpt4 book ai didi

python - "Global name not defined"错误

转载 作者:行者123 更新时间:2023-11-30 23:35:16 25 4
gpt4 key购买 nike

我已经阅读了有关此错误的几篇文章,但我仍然不明白我做错了什么。

我把它放在一个最小的例子中:假设我有一个 Doc.py,以及包含 Tool1.py 和 Tool2.py 的 Tools 包。

文档.py:

from Tools import *
import sys

def __main__():
TOOL_REPORT("Tool1","Test")

def TOOL_REPORT(tool, path):
if(tool == 'Tool1'):
Tool1.REPORT(path)
elif(tool == 'Tool2'):
Tool2.REPORT(path)
else:
sys.stderr.write("This tool is not yet included in Doc. Please check TOOLS for more information.")

if __name__=="__main__": __main__()

工具1.py:

def REPORT(path):
print("Tool1 "+path)

工具2.py:

def REPORT(path):
print("Tool2 "+path)

如果我运行这个,我总是会遇到这个错误:

File "Doc.py", line 15, in TOOL_REPORT

Tool1.REPORT(path)

NameError: global name 'Tool1' is not defined

如果有任何关于问题所在的提示,我将不胜感激!

最佳答案

您的 Tool1Tool2 子模块在显式导入某处之前不可见。

您可以将它们导入到Tools/__init__.py包文件中:

import Tool1, Tool2

此时它们可以从工具导入。

另一种选择是从您自己的代码导入模块:

import Tools.Tool1, Tools.Tool2
from Tools import *

只有当显式导入时,子模块才会被设置为包的属性。

关于python - "Global name not defined"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com