Python中__name__的具体使用

 更新时间:2024年09月14日 09:42:52   作者:Jasonial  
在Python中,__name__是一个内置变量,用于表示当前模块的名称,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

当你直接运行一个 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__内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python数据结构链表之单向链表(实例讲解)

    python数据结构链表之单向链表(实例讲解)

    下面小编就为大家带来一篇python数据结构链表之单向链表(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • python数据爬下来保存的位置

    python数据爬下来保存的位置

    在本篇文章里小编给大家整理的是关于python数据爬下来保存的位置,需要的朋友们可以参考下。
    2020-02-02
  • Python Pivot table透视表使用方法解析

    Python Pivot table透视表使用方法解析

    这篇文章主要介绍了Python Pivot table透视表使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • python接口自动化之使用token传入到header消息头中

    python接口自动化之使用token传入到header消息头中

    这篇文章主要介绍了python接口自动化之使用token传入到header消息头中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 浅析python中的迭代与迭代对象

    浅析python中的迭代与迭代对象

    在本文总小编给大家整理了关于python之中的迭代与迭代对象的相关基础知识点内容,需要的朋友们学习下。
    2018-10-10
  • ndarray数组的转置(transpose)和轴对换方式

    ndarray数组的转置(transpose)和轴对换方式

    这篇文章主要介绍了ndarray数组的转置(transpose)和轴对换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python Paramiko实现SSHv2协议轻松管理远程服务器

    Python Paramiko实现SSHv2协议轻松管理远程服务器

    这篇文章主要为大家介绍了Python Paramiko实现SSHv2协议轻松管理远程服务器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Selenium的使用详解

    Selenium的使用详解

    今天小编就为大家分享一篇关于Selenium的使用详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 基于Pyinstaller打包Python程序并压缩文件大小

    基于Pyinstaller打包Python程序并压缩文件大小

    这篇文章主要介绍了基于Pyinstaller打包Python程序并压缩文件大小,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 深入掌握Python模块创建导入和使用

    深入掌握Python模块创建导入和使用

    这篇文章主要为大家介绍了深入掌握Python模块创建导入和使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论