if __name__ == ‘__main__‘详细解释及实操演示

这篇具有很好参考价值的文章主要介绍了if __name__ == ‘__main__‘详细解释及实操演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Python中,每个模块都有一个内置的变量 name,用于表示当前模块的名称。当一个Python文件被执行时,Python解释器会首先将该文件作为一个模块导入,并执行其中的代码。此时,__name__的值为模块的名称。

if name == ‘main’ 是一个常见的用法,它的意思是:当该模块被直接执行时,该条件成立,执行其下的代码;当该模块被导入时,该条件不成立,其下的代码不会被执行。

这句话可能直接看不是很理解,那么我们通过实际操作来看看。

下面是一些例子:
假设你有一个名为 my_module.py 的Python模块,它包含以下代码:

def foo():
    print("Hello, world!")

print("This is my_module.py")

if __name__ == '__main__':
    foo()

当你在终端中运行 python my_module.py 时,由于该模块被直接执行,if name == ‘main’ 条件成立,foo() 函数会被执行并输出 “Hello, world!”,同时也会输出 “This is my_module.py”。
if name==main,Python,python,数学建模,开发语言
当你在其他的Python程序中导入 my_module 时,if name == ‘main’ 条件不成立,foo() 函数不会被执行,但是会输出 “This is my_module.py”。

import my_module

my_module

if name==main,Python,python,数学建模,开发语言
这是因为在导入my_module模块时,Python会将该模块的名称赋值给__name__变量,因此if name == 'main’语句不会执行。而当我们直接执行my_module.py文件时,name__变量的值为__main,因此if name == 'main’语句会执行foo()函数。

简单来说在Python中,每个模块都有一个内置的变量__name__,用于表示当前模块的名称。当模块被直接执行时,__name__的值就是字符串’main’,而当模块被导入到其他模块中使用时,__name__的值就是模块的名称(不包含后缀.py)。

因此,在上面的代码中,当我们直接运行my_module.py时,其中的if name == ‘main’:语句会判断当前模块是否为主模块,如果是主模块就会执行下面的代码。而当我们在main.py中导入my_module模块时,if name == ‘main’:判断条件为假,因为此时my_module模块不是主模块,所以其中的代码不会被执行。

总之,这种写法可以让模块既可以独立运行,也可以被其他模块导入使用。文章来源地址https://www.toymoban.com/news/detail-601203.html

到了这里,关于if __name__ == ‘__main__‘详细解释及实操演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx主配置文件及实操

    vim /usr/local/nginx/conf/nginx.conf 拓展: 2p:2个物理cpu 4c:1个物理核有4个核心,一共有2*4=8个逻辑核 例:4c、16G 硬盘是高效盘,相当于系统盘 存储:oss 网络存储:nas 用什么机器:私有云 总: 临时修改内核的大小:ulimit -n 永久修改内核的大小:/etc/security/limits.conf 查看内核的大小

    2024年02月10日
    浏览(25)
  • Linux 挂载磁盘详解及实操步骤

    Linux中挂载磁盘是一项重要的操作,可以用于扩展存储空间,管理数据文件,备份和存储重要文件等。本文将详细介绍Linux系统中挂载磁盘的相关概念、步骤和实际操作指南。 在Linux中,磁盘是通过分区来使用的。分区是将一个硬盘划分成几个逻辑部分来使用,在每个分区中可

    2024年02月13日
    浏览(35)
  • Linux 文件:IO接口详解及实操

    在c语言文件中,创建、打开、读、写操作可以通过如下的代码进行: 通过\\\'w\\\'指令对文件进行写入操作时,编译器会先将文件内容清空然后重新写入。 C默认会打开三个输入输出流,分别是stdin, stdout, stderr。 仔细观察发现,这三个流的类型都是FILE*, fopen返回值类型,文件指针

    2024年01月24日
    浏览(27)
  • 数据转换工具DBT介绍及实操(上)

    一、什么是DBT dbt (data build tool)是一款流行的开源数据转换工具,能够通过 SQL 实现数据转化,将命令转化为表或者视图,提升数据分析师的工作效率。dbt 主要功能在于转换数据库或数据仓库中的数据,在 E(Extract)、L(Load)、T(Transform) 的流程中,仅负责转换(transf

    2024年02月12日
    浏览(32)
  • Android+Appium自动化测试环境搭建及实操

     Appium是一个开源的移动端自动化测试工具,适用于 移动端原生APP、移动Web APP或混合APP 的自动化测试;  Appium继承了Selenium(Web端自动化测试工具),应用 WebDriver (JSON wire protocol)技术,借助操作系统自带的测试框架来驱动Android和IOS应用。 特点 :Appium是一个开源、跨平台、多

    2024年02月08日
    浏览(50)
  • Elasticsearch:跨集群复制应用场景及实操 - Cross Cluster Replication

    通过跨集群复制(Cross Cluster Replication - CCR),你可以跨集群将索引复制并实现: 在数据中心中断时继续处理搜索请求 防止搜索量影响索引吞吐量 通过在距用户较近的地理位置处理搜索请求来减少搜索延迟 跨集群复制采用主动 - 被动模型。 你索引到领导者(leader)索引,并

    2024年02月07日
    浏览(32)
  • Python: locals()详细解释

    locals() 是一个内置函数,用于返回当前局部作用域的字典。这个字典包含了当前函数或模块中所有局部变量的名称和值。具体来说: 返回值 :一个字典,包含了当前局部作用域的所有局部变量。 这个函数在不同的上下文中有不同的用途: 在这个例子中, local_vars 将包含函数

    2024年01月16日
    浏览(27)
  • Elasticsearch:跨集群复制应用场景及实操 - Cross Cluster Replication 为集群之间建立互信

    通过跨集群复制(Cross Cluster Replication - CCR),你可以跨集群将索引复制并实现: 在数据中心中断时继续处理搜索请求 防止搜索量影响索引吞吐量 通过在距用户较近的地理位置处理搜索请求来减少搜索延迟 跨集群复制采用主动 - 被动模型。 你索引到领导者(leader)索引,并

    2024年02月11日
    浏览(47)
  • 【Python实操】一行代码就可以自动画出这种艺术画?(详细教程)

    DiscoArt 是一个很牛逼的开源模块,它能根据你给定的自动绘画。 绘制过程是完全可见的,你可以在 jupyter 页面上看见这个绘制的过程: 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。 (可选1) 如果

    2023年04月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包