Python中__name__的具体使用
当你直接运行一个 Python 文件时,无论该文件导入了多少其他的模块,__name__ 的值仍然是 "__main__"。这是因为 __name__ 的值是由 Python 解释器根据脚本的运行方式来设定的,而不是由脚本内部的导入语句决定的。
先总结
- 一个py文件对应一个
__name__ - 文件直接运行时:当一个文件被直接运行时,它的
__name__是"__main__"。 - 文件被调用时:当一个文件被其他文件调用时,它的
__name__是该文件的名字(不带.py扩展)。
当直接运行 main.py
假设你有以下文件结构:
module_a.pymodule_b.pymain.py
当直接运行 main.py 时,main.py 的 __name__ 会是 "__main__"。因此,if __name__ == "__main__": 里的代码会被执行。
# main.py
import module_a
import module_b
def main():
print("Main program started")
module_a.greet_a("Alice")
module_b.greet_b("Bob")
if __name__ == "__main__":
main()
当你执行 python main.py 时,输出将是:
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
当 main.py 在另一个脚本中被调用
如果 main.py 被另一个脚本导入,那么 main.py 的 __name__ 将是 "main"(取决于文件名),因此 if __name__ == "__main__": 里的代码不会被执行。
假设你有另一个脚本 runner.py:
# runner.py
import main
print("Runner script started")
main.main() # 显式调用 main 函数
当你执行 python runner.py 时,输出将是:
Runner script started
Main program started
Hello, Alice! (From module_a)
Hello, Bob! (From module_b)
总结
因此,无论你在 main.py 中导入了多少其他的模块,只要你是直接运行 main.py,它的 __name__ 就会是 "__main__",if __name__ == "__main__": 里的代码就会被执行。
到此这篇关于Python中__name__的具体使用的文章就介绍到这了,更多相关Python __name__内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python接口自动化之使用token传入到header消息头中
这篇文章主要介绍了python接口自动化之使用token传入到header消息头中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-08-08
Python Paramiko实现SSHv2协议轻松管理远程服务器
这篇文章主要为大家介绍了Python Paramiko实现SSHv2协议轻松管理远程服务器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-01-01
基于Pyinstaller打包Python程序并压缩文件大小
这篇文章主要介绍了基于Pyinstaller打包Python程序并压缩文件大小,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-05-05


最新评论