NameError: 名称__main__
未在 Python 中定义
NameError: name ‘__main__’ is not defined in Python
Python“NameError: name __main__
is not defined”发生在我们忘记__main__
用引号括起特殊名称时。要解决该错误,请将名称
__main__
用引号引起来,例如"__main__"
.
下面是错误如何发生的示例。
主程序
# ⛔️ NameError: name '__main__' is not defined. Did you mean: '__name__'? if __name__ == __main__: print('Module is run directly')
要解决这个错误,我们必须将特殊名称
_ _ main _ _括在引号中。
主程序
# ✅ using the string __main__ if __name__ == '__main__': # 👈️ wrap in quotes print('Module is run directly')
导入 Python 模块时, 将__name__
设置为模块的名称。
主程序
import math print(math.__name__) # 👉️ "math"
通常,这是不带.py
扩展名的 Python 文件的名称。
但是,如果模块直接运行,__name__
则其设置为 string
"__main__"
。
该
__main__
名称是运行顶级代码的环境。这是第一个开始运行的模块(我们的 Python 应用程序的入口点)。顶级意味着该模块导入程序需要的所有其他文件。
您可以使用__name__
变量来检查模块是否在顶层环境中运行。
主程序
if __name__ == '__main__': print('Module is run directly')
我们将__name__
变量与字符串进行比较"__main__"
,如果满足条件,我们就知道模块是直接运行的,而不是从 import 语句初始化的。
结论
Python“NameError: name __main__
is not defined”发生在我们忘记__main__
用引号括起特殊名称时。要解决该错误,请将名称
__main__
用引号引起来,例如"__main__"
.