Python中的__name__和__main

admin 2026-01-28 06:52:08 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析了Python中__name__和__main__的作用机制。__name__是自动赋值的变量标识模块身份,__main__代表直接执行的入口文件。文章通过代码案例展示了模块在直接运行与被导入时__name__值的变化,阐明了利用该特性控制代码执行范围的原理,适合初学者理解Python模块加载流程。 综合评分: 70 文章分类: 安全开发


cover_image

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》

评论:0   参与:  0