当前位置: 首页 > news >正文

Python __name__ 与 __main__

经常会看到这样的 Python 代码

if __name__ == "__main__":main() 
  • 在 Python 中,__name__ 和 __main__ 是两个与模块和脚本执行相关的特殊变量
  • __name__ 和 __main__ 通常用于控制代码的执行方式,尤其是在模块既可以作为独立脚本运行,也可以被其他模块导入时

__name__ 变量

  • 内置变量,用于表示当前模块的名称
  • __name__ 的值取决于模块是如何被使用的

当模块作为主程序运行时:__name__ 的值被设置为 "__main__"

当模块被导入时:__name__ 的值被设置为模块的文件名(不包括 .py 扩展名)

假设有一个 module.py 文件

print(f"模块的 __name__ 值: {__name__}")

输出是 模块的 __name__ 值: __main__

__main__ 的含义

  • 特殊的字符串,用于表示当前模块是作为主程序运行的
  • __main__ 通常与 __name__ 变量一起使用,以确定模块是被导入还是作为独立脚本运行

 使用 if __name__ == "__main__": 的常见模式

常见的做法是在模块的末尾添加以下代码块

if __name__ == "__main__":# 这里的代码只有在模块作为主程序运行时才会执行main()

这种模式允许模块在被导入时不会执行某些代码,而只有在作为独立脚本运行时才会执行这些代码

实例

假设有一个名为 example.py 的模块

def greet():print("来自 example 模块的问候!")if __name__ == "__main__":print("该脚本正在直接运行。")greet()
else:print("该脚本作为模块被导入。")

输出是 

该脚本正在直接运行。
来自 example 模块的问候!

这种情况下,__name__ 的值是 "__main__",所以 if __name__ == "__main__": 块中的代码会被执行

导入 example.py

如果在另一个脚本中导入 example.py

# another_script.pyimport exampleexample.greet()

输出

该脚本作为模块被导入。
来自 example 模块的问候!

这种情况下,__name__ 的值是 "example"(模块名),所以 if __name__ == "__main__": 块中的代码不会被执行

总结

  • __name__ 是内置变量,表示当前模块的名称

  • 当模块作为主程序运行__name__ 的值是 "__main__"

  • 模块被导入__name__ 的值是模块的文件名

  • 使用 if __name__ == "__main__": 可以控制模块在被导入时不会执行某些代码,而只有在作为独立脚本运行时才会执行这些代码


    内容借鉴于菜鸟教程,感谢Python __name__ 与 __main__ | 菜鸟教程https://www.runoob.com/python3/python3-name-main.html

http://www.dtcms.com/a/603092.html

相关文章:

  • 红黑树的那些事
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(17):文法和单词-第四课
  • 免费房屋建设图纸网站有哪些重庆九龙网站建设
  • 长沙律师网站建设crm客户关系系统
  • 网站建设项目补充协议公众号怎么制作投票
  • 推荐黄的网站免费如何做网页或网站
  • 入门C语言编译器 | 从基础到进阶的C语言学习指南
  • 湘潭建设路街道网站哈尔滨有多少家网站建设公司
  • 2025 年前端性能优化技巧:提高 Web 应用程序的速度
  • 如何网站数据备份中国城乡住房建设厅官网
  • 青海省网站建设高端深圳小程序网站开发公司
  • 自学做网站一般要多久西双版纳州住房和城乡建设局网站
  • 门户网站开源成都系统网站建设
  • 怎么把网站放到服务器网站开发 页面功能布局
  • 易语言静态编译器 | 提升程序效率与可移植性的关键工具
  • 如何在工商网站做预先核名公司网站开发需要什么证书
  • 做淘宝客怎么做官方网站海口网站建设搜q.479185700
  • 网站开发一个月企业网站公司单位有哪些
  • 平面设计网站有哪些比较好如何建立本站站点
  • 基于python深度学习的经典名著推荐系统
  • SAP FICO发出商品报表分享
  • 网站开发下人员配置百度一下就知道百度首页
  • 怎么创一个网站百度 网站质量
  • 怎么看一个网站做没做竞价商城小程序模板源码完整版
  • 4.97基于8086温度报警器ACD0809基于8086温度计仿真,8086温度报警。proteus仿真+汇编语言源程序
  • 12.string_vector(上)
  • (论文速读)面向实用的实时神经视频压缩
  • 赣州福泰龙网站建设黄岛网站制作
  • 易语言编译器——功能与应用详解
  • 建设工程施工许可证在哪个网站办wordpress 显示加载时间