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

if __name__ == ‘__main__‘:

基本概念

if __name__ == '__main__': 是一个条件判断语句,用于确定当前模块是作为主程序运行,还是被其他模块导入。

__name__ 变量

  • __name__ 是Python的一个内置变量,表示当前模块的名称
  • 当一个模块被直接运行时,__name__ 的值会被设置为 '__main__'
  • 当一个模块被导入到其他模块中时,__name__ 的值就是模块的文件名(不含.py后缀)

这个结构的主要用途有:

  1. 模块的双重用途​:让一个文件既可以作为可执行脚本,也可以作为可导入模块
  2. 防止导入时执行不必要的代码​:避免模块被导入时自动执行测试代码或主程序逻辑

使用示例

# my_module.pydef some_function():print("这是一个函数")if __name__ == '__main__':print("作为主程序运行")some_function()
else:print("被导入为模块")

直接运行时的输出

作为主程序运行
这是一个函数

被其他模块导入时的输出

被导入为模块

实际应用场景

  1. 测试代码​:在模块底部添加测试代码,只有直接运行时才执行
  2. 脚本入口​:明确程序的入口点
  3. 避免副作用​:防止导入时执行不必要的初始化操作

最佳实践

  • 在编写可重用模块时,应该使用这个结构
  • 主程序逻辑放在这个条件块中
  • 函数和类定义通常放在这个条件块之外

类似用法

在Python包中,__main__.py文件也有类似的作用,当使用python -m package运行时,会执行__main__.py中的代码。

这个结构是Python模块化编程的重要部分,帮助开发者编写更清晰、更可维护的代码。

http://www.lqws.cn/news/586009.html

相关文章:

  • 【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(三)
  • IDEA相关配置记录
  • 对selenium进行浏览器和驱动进行配置Windows | Linux
  • 【机器学习第四期(Python)】LightGBM 方法原理详解
  • Excel Report
  • Photoshop 插件 NBP Freqsep Control 2.0 安装全流程
  • C++ Programming Language —— 第4章:程序流程结构
  • 【启发式算法】Dynamic A*(D*)算法详细介绍(Python)
  • 「Java流程控制」while循环
  • 3.前端和后端参数不一致,后端接不到数据的解决方案
  • Redis 和 Mysql 如何保证数据一致性
  • [Python 基础课程]变量
  • 如何通过SSL证书配置防止源站IP泄露 - 全面防护指南
  • 源码包安装haproxy(rocky8)
  • Kafka 核心机制面试题--自问自答
  • 本地部署kafka4.0
  • PHP中的异常处理try-catch语句
  • Franka机器人赋能RoboCulture研究,打造生物实验室智能解决方案
  • 【科研绘图系列】R语言绘制世界地图分布(world map)
  • 炸鸡派-基础测试例程
  • AdGuard Home 安装及使用
  • 插入排序的简单介绍
  • 在 VS Code 中安装与配置 Gemini CLI 的完整指南
  • 第28篇:深入解析OpenEuler 24.03中的PAM认证机制:从原理到实践
  • 面向安全产品测试的静态混淆型 Shellcode Loader 设计与对抗分析
  • react经验:在nextjs中使用motion组件
  • 设计模式-访问者模式
  • PHP WebSocket服务器搭建指南
  • 深度学习03 人工神经网络ANN
  • 大数据(3)-Hive