在 Python 中,__name__
是一个特殊的内置变量,它是一个字符串。对于任何 Python 文件,__name__
的值取决于该文件是被直接运行还是作为模块被导入到另一个文件中。
- 当 Python 文件被直接执行时,例如通过命令行直接运行某个文件 (python script.py),那么该文件中的
__name__
变量将被设置为 “__main__
”。这意味着,如果你在一个 Python 文件的最顶部添加打印__name__
的语句,当文件被直接运行时,它会输出 “__main__
”。 - 当 Python 文件被导入为模块时,
__name__
的值则会变成该模块的名称。例如,假设有一个名为 module.py 的文件,如果它被另一个 Python 文件导入 (import module),在 module.py 文件内部,__name__
将被设置为 “module”,即文件(模块)的名称。
1 | # 假设这是 module.py 文件 |
如果你直接运行
module.py
(python module.py),__name__
的值是 “__main__
”,因此 foo() 函数会被调用。但如果你从另一个文件通过 import module 导入module.py
,__name__
的值会是 “module”,因此 if 语句内的代码块不会被执行。
这个机制允许开发者区分代码是被直接运行还是作为模块被导入,这样可以在一个文件中既定义可重用的函数或类,又能包含测试代码或主程序代码,而这部分代码只在文件被直接运行时执行。这种模式常见于 Python 脚本和模块,提高了代码的组织性和可重用性。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !