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

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.xdnf.cn/news/17403.html

相关文章:

  • Deep Learning MNIST手写数字识别 Mac
  • 深入解析Go设计模式:命令模式实战
  • 单链表专题---暴力算法美学(2)(有视频演示)
  • Linux 系统中,如何处理信号以避免竞态条件并确保程序稳定性?
  • Oracle 19C 查看卡慢的解决思路
  • 使用快捷键将当前屏幕内容滚动到边缘@首行首列@定位到第一行第一个字符@跳转到4个角落
  • 【2025CVPR-图象去雾方向】BEVDiffuser:基于地面实况引导的BEV去噪的即插即用扩散模型
  • 诺基亚就4G/5G相关专利起诉吉利对中国汽车及蜂窝模组企业的影响
  • PHP项目运行
  • 亚麻云之数据安家——RDS数据库服务入门
  • Jenkins | 账号及权限管理
  • 从 GPT‑2 到 gpt‑oss:解析架构的迭代
  • 在windows安装colmap并在cmd调用
  • 设计模式(Design Pattern)
  • C++ 黑马 内存分配模型
  • 通过trae开发你的第一个Chrome扩展插件
  • 2025年APP开发趋势:4大方向重构行业格局
  • [激光原理与应用-224]:机械 - 机械设计与加工 - 常见的术语以及含义
  • python | numpy小记(十):理解 NumPy 中的 `np.random.multinomial`(进阶)
  • 医学统计(随机对照研究分类变量结局数据的统计策略2)
  • 面对信号在时频平面打结,VNCMD分割算法深度解密
  • 【接口自动化】-5- 接口关联处理
  • 比特币现货和比特币合约的区别与联系
  • 金融机构在元宇宙中的业务开展与创新路径
  • nginx+lua+redis案例
  • AI智能编程工具汇总
  • Numpy基础(通用函数)
  • [IOMMU]基于 AMD IOMMU(AMD‑Vi/IOMMUv2)的系统化总结与落地方案
  • 【C++】模版进阶
  • FMS 2025存储峰会获奖技术全景解读