当前位置: 代码网 > it编程>前端脚本>Python > Python中__name__的具体使用

Python中__name__的具体使用

2024年09月14日 Python 我要评论
当你直接运行一个 python 文件时,无论该文件导入了多少其他的模块,__name__的值仍然是"__main__"。这是因为__name__的值是由 python 解释器根据脚

当你直接运行一个 python 文件时,无论该文件导入了多少其他的模块,__name__ 的值仍然是 "__main__"。这是因为 __name__ 的值是由 python 解释器根据脚本的运行方式来设定的,而不是由脚本内部的导入语句决定的。

先总结

  • 一个py文件对应一个 __name__
  • 文件直接运行时:当一个文件被直接运行时,它的 __name__ 是 "__main__"
  • 文件被调用时:当一个文件被其他文件调用时,它的 __name__ 是该文件的名字(不带 .py 扩展)。

当直接运行 main.py

假设你有以下文件结构:

  • module_a.py
  • module_b.py
  • main.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__内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com