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

Python中的 __name__

Python中的 __name__

  • __name__ 是Python中每个模块(.py文件)都会自动拥有的一个内置变量。
  • 它表示当前模块的名字。

关键点:

  • 当你直接运行一个Python脚本,比如:
python train.py

此时,train.py文件里的 __name__ 的值是:

__name__ == '__main__'
  • 但是当这个文件被 别的Python脚本导入 时,比如:
import train

此时,train.py 文件里的 __name__ 就是模块名:

__name__ == 'train'

为什么要写

if __name__ == '__main__':# 只有在直接运行这个脚本时,才会执行这里的代码

这个判断是为了:

  • 保证只有直接运行这个脚本时,才执行if语句里的代码
  • 当这个脚本被别人导入时,if块里面的代码不会自动运行

在多进程/多线程里为什么重要?

Windows下的多进程启动机制,会重新导入当前启动脚本,如果没有这个判断,就会导致递归地反复运行整个脚本,导致错误。


总结

  • __name__ == '__main__' 这句话就是告诉Python:“如果你是直接执行这个文件,就运行下面的代码。”
  • 这也是Python程序的入口习惯写法。

你可以试试在train.py里加上:

from ultralytics import YOLOif __name__ == '__main__':model = YOLO('yolov8n.pt')model.train(data='weed.yaml', workers=1, epochs=5, imgsz=640, batch=16)

然后再运行,应该就不会报那个多进程错误了。需要我帮你写完整示例吗?

http://www.lryc.cn/news/615930.html

相关文章:

  • 计算机视觉(CV)——pytorch张量基本使用
  • imx6ull-驱动开发篇17——linux原子操作实验
  • docker等基础工具使用
  • 个人笔记Mybatis2
  • 第一章 概述
  • 快速了解DBSCAN算法
  • reinterpret_cast and static cast
  • Docker实战:为项目打造即开即用的宝塔LNMP环境
  • redis集群-docker环境
  • 【从源码角度深度理解 CPython 的垃圾回收机制】:第2课循环引用:标记清除-分代回收
  • 机器学习线性归回实战(单因子和多音字分别建立预测房价模型)
  • 一个基于 Next.js 和 Puppeteer 的 Markdown 转图片服务,支持 Docker 部署和 API 集成
  • Node.js面试题及详细答案120题(01-15) -- 基础概念篇
  • python | numpy小记(十):理解 NumPy 中的 `np.random.multinomial`(进阶)
  • Stlink识别不到-安装驱动
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(下)
  • 整数规划-分支定界
  • Docker Compose 部署高可用 MongoDB 副本集集群(含 Keepalived + HAProxy 负载均衡)
  • AI编程插件对比分析:CodeRider、GitHub Copilot及其他
  • 给AI装上“翻译聚光灯”:注意力机制的机器翻译革命
  • 【精彩回顾·成都】成都 User Group×柴火创客空间:开源硬件驱动 AI 与云的创新实践!
  • 打卡day34
  • openpnp - 顶部相机如果超过6.5米影响通讯质量,可以加USB3.0信号放大器延长线
  • Spark执行计划与UI分析
  • AutoCAD 2026 的主要功能
  • 变量详解:创建初始化与内存管理
  • lesson34:深入理解Python线程:从基础到实战优化
  • XGBoost算法在机器学习中的实现
  • Android Camera 打开和拍照APK源码
  • Android 开发问题:Invalid id; ID definitions must be of the form @+id/ name