Python入门:Python3 __name__ 与 __main__全面学习教程

在这里插入图片描述

在这里插入图片描述

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实战经验。


Python3 __name__ 与 __main__全面学习教程


🌐 前篇文章咱们讲解了 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.pyimport example输出"该脚本作为模块被导入。"和调用 example.greet() 时的问候语此时 __name__ 值为 "example"if 条件不成立,执行 else 代码块

四、为什么需要这种模式?

这种模式的优势在于提高了模块的灵活性

  • 当模块作为工具脚本独立运行时,可以执行测试代码、演示功能等
  • 当模块被导入到其他程序中时,不会执行这些额外代码,避免干扰主程序

例如,一个计算工具模块:

  • 作为独立脚本运行时,可以执行测试用例,验证功能正确性
  • 被导入时,只提供计算函数,不执行测试代码

总结

  1. __name__ 是表示当前模块名称的内置变量
  2. 模块作为主程序运行时,__name__ = "__main__";被导入时,__name__ = 模块文件名
  3. if __name__ == "__main__": 是控制代码执行范围的关键模式
  4. 合理使用该模式能让模块同时满足"独立运行"和"被导入调用"两种场景

掌握 __name____main__ 的用法,是写出高质量 Python 模块的基础。赶紧在自己的代码中尝试使用这种模式吧!

💡下一篇咱们学习 Python3 输入和输出面学习教程!

附录:扩展学习资源

  1. 官方资源
  2. 本专栏特色资源
    • 代码资源仓库:CSDN专属资源在线获取
    • 海量Python教程:关注公众号:xcLeigh,获取网盘地址
    • 一对一答疑:添加微信与博主在线沟通(备注“Python专栏”

联系博主

    xcLeigh 博主全栈领域优质创作者,博客专家,目前,活跃在CSDN、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。

    亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

     愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

    至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


     💞 关注博主 🌀 带你实现畅游前后端!

     🏰 大屏可视化 🌀 带你体验酷炫大屏!

     💯 神秘个人简介 🌀 带你体验不一样得介绍!

     🥇 从零到一学习Python 🌀 带你玩转Python技术流!

     🏆 前沿应用深度测评 🌀 前沿AI产品热门应用在线等你来发掘!

     💦 :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有)https://xcleigh.blog.csdn.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


在这里插入图片描述

     📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌

评论 147
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcLeigh

万水千山总是情,打赏两块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值