文章总结: 本文解析了Python中__name__和__main__的作用机制。__name__是自动赋值的变量标识模块身份,__main__代表直接执行的入口文件。文章通过代码案例展示了模块在直接运行与被导入时__name__值的变化,阐明了利用该特性控制代码执行范围的原理,适合初学者理解Python模块加载流程。 综合评分: 70 文章分类: 安全开发
Python 中的__name__和__main
原创
Lino Lino
网络技术联盟站
2026年1月27日 18:00 江苏
各位同学,大家好!我是你们的 Python 讲师 Lino。
你知道同一份代码,什么时候执行?什么时候不执行?
答案,就藏在 __name__ 和 __main__ 这两个特殊标识中。
在正式展开之前,先给出本节课的结论性描述:
__name__是 Python 在运行时自动赋值的变量,用来标识当前模块的“运行身份”。
__main__是一个特殊的模块名,代表“当前被直接执行的入口文件”。
后面的所有案例,都是在验证这两句话。
__name__ 是什么?不是关键字,是变量
首先明确一点:
- __name__ 不是语法
- 不是函数
- 不是关键字
它是 Python 在加载模块时,自动创建的一个变量。
案例一:最基础的 __name__ 输出
新建文件 test.py:
print(name)
直接执行:
python test.py
输出结果:
- 当一个文件被“直接运行”时
- Python 会把该模块的 __name__ 设为 “__main__”
同一份代码,被导入时会发生什么
我们引入第二个文件。
目录结构:
demo/ ├── test.py └── run.py
test.py:
print(“test.py name =”, name)
run.py:
import test print(“run.py name =”, name)
执行:
python run.py
输出:
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络技术联盟站 Lino Lino《Python 中的name和__main》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论