Python入门:Python3 name 与 __main__全面学习教程
Python入门:Python3 name 与 __main__全面学习教程,本文详细讲解了Python中__name__与__main__的相关知识。__name__是内置变量,其值取决于模块使用方式:作为主程序运行时为"main",被导入时为模块文件名(不含.py)。__main__是特殊字符串,用于标识模块作为主程序运行。核心用法是通过if name == “main”:控制代码执行,使模块作为主程序时执行特定代码,被导入时不执行,提高了模块灵活性,可同时满足独立运行和被导入调用的场景,是写出高质量Python模块的基础。
前言
Python作为一门简洁、易读、功能强大的编程语言,其基础语法是入门学习的核心。掌握好基础语法,能为后续的编程实践打下坚实的基础。本文将全面讲解Python3的基础语法知识,适合编程初学者系统学习。Python以其简洁优雅的语法和强大的通用性,成为当今最受欢迎的编程语言。本专栏旨在系统性地带你从零基础入门到精通Python核心。无论你是零基础小白还是希望进阶的专业开发者,都将通过清晰的讲解、丰富的实例和实战项目,逐步掌握语法基础、核心数据结构、函数与模块、面向对象编程、文件处理、主流库应用(如数据分析、Web开发、自动化)以及面向对象高级特性,最终具备独立开发能力和解决复杂问题的思维,高效应对数据分析、人工智能、Web应用、自动化脚本等广泛领域的实际需求。
🥇 点击进入Python入门专栏,Python凭借简洁易读的语法,是零基础学习编程的理想选择。本专栏专为初学者设计,系统讲解Python核心基础:变量、数据类型、流程控制、函数、文件操作及常用库入门。通过清晰示例与实用小项目,助你快速掌握编程思维,打下坚实根基,迈出自动化办公、数据分析或Web开发的第一步。
🥇 点击进入Python小游戏实战专栏, 寓教于乐,用Python亲手打造经典小游戏!本专栏通过开发贪吃蛇、飞机大战、猜数字、简易版俄罗斯方块等趣味项目,在实践中掌握Python核心语法、面向对象编程、事件处理、图形界面(如Pygame)等关键技能,将枯燥的代码学习转化为可见的成果,让学习编程充满乐趣与成就感,快速提升实战能力。
🥇 点击进入Python小工具实战专栏,告别重复劳动,用Python打造效率神器!本专栏教你开发文件批量处理、自动邮件通知、简易爬虫、桌面提醒、密码生成器、天气查询等实用小工具。聚焦os、shutil、requests、smtplib、schedule等核心库,通过真实场景案例,快速掌握自动化脚本编写技巧,解放双手,显著提升工作与生活效率,让代码真正服务于你的日常。
🥇 点击进入Python爬虫实战专栏,解锁网络数据宝库!本专栏手把手教你使用Python核心库(如requests、BeautifulSoup、Scrapy)构建高效爬虫。从基础网页解析到动态页面抓取、数据存储(CSV/数据库)、反爬策略应对及IP代理使用,通过实战项目(如电商比价、新闻聚合、图片采集、舆情监控),掌握合法合规获取并利用网络数据的核心技能,让数据成为你的超能力。
🥇 点击进入Python项目实战专栏,告别碎片化学习,挑战真实项目!本专栏精选Web应用开发(Flask/Django)、数据分析可视化、自动化办公系统、简易爬虫框架、API接口开发等综合项目。通过需求分析、架构设计、编码实现、测试部署的全流程,深入掌握工程化开发、代码复用、调试排错与团队协作核心能力,积累高质量作品集,真正具备解决复杂问题的Python实战经验。
🌐 前篇文章咱们讲解了 Python入门:Python3 模块全面学习教程 ,如果忘记了,可以去重温一下,不停的重复敲击基础代码,有助于让你更加熟练掌握一门语言。今天咱们学习 Python3 name 与 __main__全面学习教程,下面开始吧!
在 Python 代码中,我们经常会看到这样的片段:
if __name__ == "__main__":
main()
对于初学者来说,这行代码可能有些神秘。今天,我们就来深入探讨 __name__
和 __main__
的含义,以及它们在 Python 模块和脚本执行中的重要作用。
一、name 变量:模块的"身份标识"
__name__
是 Python 的一个内置变量,它就像模块的"身份证",用于表示当前模块的名称。但它的值并不是固定的,而是取决于模块的使用方式。
1.1 两种取值情况
- 当模块作为主程序运行时:
__name__
的值会被自动设置为"__main__"
。 - 当模块被其他模块导入时:
__name__
的值会被设置为该模块的文件名(不包含.py
扩展名)。
1.2 实例演示
创建一个名为 module.py
的文件,内容如下:
print(f"模块的 __name__ 值: {__name__}")
直接运行该文件,输出结果为:
模块的 __name__ 值: __main__
这说明当模块作为主程序运行时,__name__
确实被赋值为 "__main__"
。
二、main 的特殊含义
__main__
是一个特殊的字符串,它的作用是标识当前模块的运行状态——当 __name__
的值为 "__main__"
时,意味着该模块正在作为独立的主程序运行,而不是被其他模块导入。
简单来说,__main__
就像一个"运行标识",帮助我们区分模块的两种使用场景:
- 作为独立脚本直接运行
- 作为模块被其他程序导入
三、核心用法:if name == “main”:
if __name__ == "__main__":
是 Python 中一种非常经典的代码模式,它的核心作用是控制代码的执行范围——让特定代码只在模块作为主程序运行时执行,被导入时则不执行。
3.1 基础示例
假设我们有一个 example.py
文件,内容如下:
def greet():
print("来自 example 模块的问候!")
if __name__ == "__main__":
print("该脚本正在直接运行。")
greet()
else:
print("该脚本作为模块被导入。")
3.2 两种运行场景对比
运行方式 | 执行结果 | 原理说明 |
---|---|---|
直接运行 example.py | 输出"该脚本正在直接运行。“和"来自 example 模块的问候!” | 此时 __name__ 值为 "__main__" ,if 条件成立,执行对应代码块 |
被其他脚本导入(如 another_script.py 中 import example ) | 输出"该脚本作为模块被导入。"和调用 example.greet() 时的问候语 | 此时 __name__ 值为 "example" ,if 条件不成立,执行 else 代码块 |
四、为什么需要这种模式?
这种模式的优势在于提高了模块的灵活性:
- 当模块作为工具脚本独立运行时,可以执行测试代码、演示功能等
- 当模块被导入到其他程序中时,不会执行这些额外代码,避免干扰主程序
例如,一个计算工具模块:
- 作为独立脚本运行时,可以执行测试用例,验证功能正确性
- 被导入时,只提供计算函数,不执行测试代码
总结
__name__
是表示当前模块名称的内置变量- 模块作为主程序运行时,
__name__
="__main__"
;被导入时,__name__
= 模块文件名 if __name__ == "__main__":
是控制代码执行范围的关键模式- 合理使用该模式能让模块同时满足"独立运行"和"被导入调用"两种场景
掌握 __name__
与 __main__
的用法,是写出高质量 Python 模块的基础。赶紧在自己的代码中尝试使用这种模式吧!
💡下一篇咱们学习 Python3 输入和输出面学习教程!
附录:扩展学习资源
- 官方资源:
- Python官网:https://www.python.org
- PyPI:https://pypi.org(查找第三方库)
- 安装包等相关文件(另附带pycharm工具),网盘下载地址:https://pan.quark.cn/s/649af731037c
- 学习资料视频和文档资源,网盘下载地址: https://pan.quark.cn/s/ee16901a8954
- 本专栏特色资源:
- 代码资源仓库:CSDN专属资源在线获取
- 海量Python教程:关注公众号:xcLeigh,获取网盘地址
- 一对一答疑:添加微信与博主在线沟通(
备注“Python专栏”
)
联系博主
xcLeigh 博主,全栈领域优质创作者,博客专家,目前,活跃在CSDN、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
💞 关注博主 🌀 带你实现畅游前后端!
🏰 大屏可视化 🌀 带你体验酷炫大屏!
💯 神秘个人简介 🌀 带你体验不一样得介绍!
🥇 从零到一学习Python 🌀 带你玩转Python技术流!
🏆 前沿应用深度测评 🌀 前沿AI产品热门应用在线等你来发掘!
💦 注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://xcleigh.blog.csdn.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌