Python中if __name__ == ‘__main__‘:的原理、作用和实践

Python中if name == ‘main‘:的原理、作用和实践

在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~
💡 创作高质量博文,分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


🌵文章目录🌵

  • 一、原理 📚
  • 二、作用 🛠️
  • 三、实践 🚀
  • 四、总结 🎉
  • 五、最后 🤝

  👋🏼今天我们将一起探讨Python中一个非常常见且重要的语句:if __name__ == '__main__':。我们将深入了解它的原理、作用,并通过实践来掌握它的使用。

一、原理 📚

  首先,我们需要了解Python中的__name__变量。当一个Python文件被直接执行时,__name__变量的值会被设置为'__main__'。而如果这个文件被导入为模块时,__name__的值则会被设置为该模块的名字

  这个特性允许我们编写既可以被其他模块导入使用,又可以作为独立脚本执行的Python文件。通过检查__name__变量的值,我们可以决定是执行文件的主逻辑,还是仅仅提供函数和类供其他模块使用。

二、作用 🛠️

  if __name__ == '__main__':语句的主要作用是区分模块的直接执行和导入。它允许我们编写更加灵活和可重用的代码。

  • 模块导入时的行为:当其他模块导入该文件时,if __name__ == '__main__':语句块下的代码不会被执行。这样,我们可以确保只导入所需的函数和类,而不会执行不必要的代码。
  • 直接执行时的行为:当该文件作为独立脚本直接执行时,if __name__ == '__main__':语句块下的代码会被执行。这允许我们编写一些只在文件直接执行时才需要运行的代码,如测试代码、示例代码等。

三、实践 🚀

  下面我们通过一个简单的例子来实践if __name__ == '__main__':的用法。

假设我们有一个名为example.py的文件,内容如下:

def greet(name):print(f"Hello, {name}!")if __name__ == '__main__':greet("World")

  在这个例子中,我们定义了一个名为greet的函数,它接受一个参数name并打印一条问候消息。然后,我们使用if __name__ == '__main__':语句来判断该文件是否作为独立脚本直接执行。如果是的话,我们调用greet函数并传入字符串"World"作为参数。

现在,让我们来看看如何使用这个文件。

  1. 作为模块导入

  假设我们有一个名为main.py的文件,我们想要导入example.py中的greet函数并使用它。我们可以这样做:

import exampleexample.greet("Alice")

  在这个例子中,我们导入了example.py文件,并通过example.greet("Alice")调用了greet函数。注意,由于example.py中的if __name__ == '__main__':语句块下的代码不会被执行,所以不会打印出"Hello, World!"

$ python main.py
Hello, Alice!
  1. 作为独立脚本执行

  如果我们直接执行example.py文件,那么if __name__ == '__main__':语句块下的代码会被执行,因此会打印出"Hello, World!"

$ python example.py
Hello, World!

  通过这个例子,我们可以看到if __name__ == '__main__':语句在区分模块的直接执行和导入时的重要作用

四、总结 🎉

  通过本文的介绍和实践,我们深入了解了if __name__ == '__main__':语句的原理、作用和实践。它允许我们编写更加灵活和可重用的代码,通过区分模块的直接执行和导入来实现不同的功能。希望你在使用Python时能够充分利用这个特性,写出更加优雅和高效的代码!


五、最后 🤝

  亲爱的读者,感谢您每一次停留和阅读,这是对我们最大的支持和鼓励!🙏在茫茫网海中,您的关注让我们深感荣幸。您的独到见解和建议,如明灯照亮我们前行的道路。🌟若在阅读中有所收获,一个赞或收藏,对我们意义重大。

  我们承诺,会不断自我挑战,为您呈现更精彩的内容。📚有任何疑问或建议,欢迎在评论区畅所欲言,我们时刻倾听。💬让我们携手在知识的海洋中航行,共同成长,共创辉煌!🌱🌳感谢您的厚爱与支持,期待与您共同书写精彩篇章!

  您的点赞👍、收藏🌟、评论💬和关注💖,是我们前行的最大动力!

  🎉 感谢阅读,祝你编程愉快! 🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487646.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity之PUN2插件实现多人联机射击游戏

目录 📖一、准备工作 📺二、UI界面处理 📱2.1 登录UI并连接PUN2服务器 📱2.2 游戏大厅界面UI 📱2.3 创建房间UI 📱2.4 进入房间UI 📱2.5 玩家准备状态 📱2.6 加载战斗场景…

电子元件分销商

Top 10 Active Electronic Parts Distributors List – 2022 / 2023 一家从众多制造商那里收购所有电子元件并销售给客户的公司被称为电子元件分销商。 A company that acquires all electronic components from numerous manufacturers and sells them to customers from a si…

第十一天-Excel的操作

目录 1.xlrd-Excel的读模块 安装 使用 获取工作簿 读取工作簿的内容 xlsxwriter-Excel的写模块 安装 使用 生成图表 add_series参数 图表的样式 demo:生成图表 Excel的操作在python中有多个模块,为了能够快速使用,选择了相对简单…

【Java程序设计】【C00276】基于Springboot的就业信息管理系统(有论文)

基于Springboot的就业信息管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的就业信息管理系统 本系统分为前台功能模块、管理员功能模块、学生功能模块、企业功能模块以及导师功能模块。 前台功能模块&…

Threejs 实现3D影像地图,Json地图,地图下钻

1.使用threejs实现3D影像地图效果,整体效果看起来还可以,底层抽象了基类,实现了通用,对任意省份,城市都可以只替换数据,即可轻松实现效果。 效果如下: 链接https://www.bilibili.com/video/BV1…

HMI界面:是工业自动化的“窗口”,大有用武之地。

Hello,我是大千UI工场,本期分享HMI人机交互界面在工业自动化领域的应用,关注大千,学习N多UI干货,有设计需求,我们也可以接单。 HMI(Human Machine Interface,人机界面)在…

Redis篇之Redis持久化的实现

持久化即把数据保存到可以永久保存的存储设备当中(磁盘)。因为Redis是基于内存存储数据的,一旦redis实例当即数据将会全部丢失,所以需要有某些机制将内存中的数据持久化到磁盘以备发生宕机时能够进行恢复,这一过程就称…

Android LruCache源码分析

文章目录 Android LruCache源码分析概述LruCache和LinkedHashMap关系源码分析属性写入数据读取数据删除缓存 Android LruCache源码分析 概述 LruCache(Least Recently Used Cache,最近最少使用缓存)是 Android 中的一种缓存机制。 根据数据…

Nginx跳转模块之rewrite

一.location与rewrite模块的区别 rewrite:对访问的域名或者域名内的URL路径地址重写 location:对访问的路径做访问控制或者代理转发 二.rewrite模块基本内容 1.功能 通过正则表达式的匹配来改变URI,可以同时存在一个或多个指令&#xff0c…

SpringBoot3+Vue3 基础知识(持续更新中~)

bean 把方法的返回结果注入到ioc中 1: 2: 3: 组合注解封装 实战篇: 解析token: 统一携带token: 驼峰命名与下划线命名转换:

WebAPI [Swagger] 发布ISS不能生成xml文件问题记录

因为Swagger文件的注释是读取项目xml的。 除了Debug要输出xml,正式发布release时也要输出xml

【LeetCode刷题笔记】242.有效的字母异位词

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…