【python】if __name__ == ‘__main__‘:

if __name__ == '__main__': 是一个Python脚本中使用的常见结构,用来判断该脚本文件是直接运行的还是被导入到其他文件中运行的。
当一个Python文件被运行时,Python解释器会自动创建一些特殊的变量,`__name__就是其中之一。如果这个文件是作为主程序直接运行的,那么变量__name__的值会被设置为字符串'__main__'`。如果这个文件是被其他Python文件导入的,那么`__name__`的值会被设置为该文件的模块名。

例如,文件script.py:

def my_function():  
    print("Function was called!")  

my_function()

if __name__ == '__main__':  
    print("This script is being run directly!")  
    my_function()

if __name__ == 'script':  
    print("This script is being run!")  
    my_function()

如果只是导入:

import script

将输出:

Function was called!
This script is being run!
Function was called!

如果作为主程序直接运行:

python3 script.py

将输出:

Function was called!
This script is being run directly!
Function was called!

因此,`if __name__ == '__main__':` 的检查作用是,它确保代码块中的代码只有在该脚本被当作主程序执行时才会运行,而在作为模块被导入时不会运行。
这种检查通常用于以下场景:
- 允许一个脚本文件在被其他代码导入作为模块时提供功能,并且在直接运行时也能提供一些独立的功能(比如运行测试、提供命令行界面等)。
- 防止当文件作为模块被导入时,其中的部分代码被执行。
通常会把一些测试函数或程序的主逻辑放在`if __name__ == '__main__':` 代码块中,确保它们只有在该文件被直接执行时才会运行,而在文件作为模块被导入时不会执行这些代码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

米贸搜|Facebook在购物季使用的Meta广告投放流程

一、账户简化 当广告系列开始投放后,每个广告组都会经历一个初始的“机器学习阶段”。简化账户架构可以帮助AI系统更快获得广告主所需的成效。例如: 每周转化次数超过50次的广告组,其单次购物费用要低28%;成功结束机器学习阶段的…

Ondo宣布将其原生稳定币USDY带入Sui生态

重要提示:USDY是由短期美国国债支持的token化票据,持有者享受稳定币的实用性同时获得收益。USDY不得在美国或向美国人出售或以其他方式提供。USDY也未根据1933年美国证券法注册。 不到一年的时间,Sui已经成为全链TVL排名前十的区块链&#xf…

Netty源码 之 ByteBuf自适应扩缩容源码

Netty体系如何使得ByteBuf根据实际IO收发数据场景进行自适应扩容缩容的? IO收发数据的过程: read 读取("I"):网卡硬件通过网络传输介质读取对端传输过来的数据,网卡硬件再把数据写到recv-socke…

Flask 入门7:使用 Flask-Moment 本地化日期和时间

如果Web应用的用户来自世界各地,那么处理日期和时间可不是一个简单的任务。服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般使用协调世界时(UTC)。不过用户看到 UTC 格式的时间会感到困惑,他们…

Linux系统安装(CentOS Vmware)

学习环境安装 VMware安装 VMware下载&安装 访问官网:https://www.vmware.com 在此处可以选择语言 点击China(简体中文) 点击产品,点击Workstation Pro 下滑,点击下载试用版 下滑找到Workstation 17 Pro for Wi…

如何查看端口映射?

端口映射是一种用于实现远程访问的技术。通过将外网端口与内网设备的特定端口关联起来,可以使外部网络用户能够通过互联网访问内部网络中的设备和服务。在网络中使用端口映射可以解决远程连接需求,使用户能够远程访问设备或服务,无论是在同一…

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1​,X2​... ,连续值或离散值。 目标变量: …

DAY7 作业

1.简易QQ登录页面 实际效果 qss界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("QQ"); /*设置窗口标题*/this->…

python官网下载慢怎么办?这里是一些解决方法

为什么Python官网下载速度慢? Python官网是开源软件的官方网站,提供了Python编程语言的最新版本和相关资源供开发者下载。然而,由于全球用户访问量较大,有时候会导致Python官网的下载速度变慢或不稳定。这对于急需获取Python的开…

idea设置terminal为git

要在IntelliJ IDEA中设置终端为Git Bash,请按照以下步骤操作: 打开 Settings(设置)。点击 Tools(工具)选项卡。进入 Terminal(终端)界面。在 Shell Path 下选择 Browse(…

如何在 Microsoft Azure 上部署和管理 Elastic Stack

作者:来自 Elastic Osman Ishaq Elastic 用户可以从 Azure 门户中查找、部署和管理 Elasticsearch。 此集成提供了简化的入门体验,所有这些都使用你已知的 Azure 门户和工具,因此你可以轻松部署 Elastic,而无需注册外部服务或配置…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…

c语言--指针数组(详解)

目录 一、什么是指针数组?二、指针数组模拟二维数组 一、什么是指针数组? 指针数组是指针还是数组? 我们类比一下,整型数组,是存放整型的数组,字符数组是存放字符的数组。 那指针数组呢?是存放…

[每日一题] 02.07 - 小鱼比可爱

小鱼比可爱 n int(input()) lis list(map(int,input().split())) res [0] for i in range(1,n):count 0for j in range(i):if lis[i] > lis[j]:count 1res.append(count)a .join(str(i) for i in res) print(a[:-1])

【大模型上下文长度扩展】MedGPT:解决遗忘 + 永久记忆 + 无限上下文

MedGPT:解决遗忘 永久记忆 无限上下文 问题:如何提升语言模型在长对话中的记忆和处理能力?子问题1:有限上下文窗口的限制子问题2:复杂文档处理的挑战子问题3:长期记忆的维护子问题4:即时信息检…

pytorch训练指标记录之tensoboard,wandb

详解Tensorboard及使用教程_tensorboard怎么用-CSDN博客文章浏览阅读5.1w次,点赞109次,收藏456次。目录一、什么是Tensorboard二、配置Tensorboard环境要求安装三、Tensorboard的使用使用各种add方法记录数据单条曲线(scalar)多条曲线(scalars)直方图(hi…

借助宁盾身份目录实现信创、Windows混合终端统一身份认证及网络准入控制

背景: 近期有基金、保险行业的IT负责人反馈,公司要求IT建设必须紧跟政策,在2024年内必须要上国产信创操作系统终端,个别应用如OA系统、虚拟化桌面、邮箱等都不能再继续用国外的产品了,要完成国产化替代指标。跟着国产…

【动态规划】【前缀和】【C++算法】LCP 57. 打地鼠

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LCP 57. 打地鼠 勇者面前有一个大小为3*3 的打地鼠游戏机,地鼠将随机出现在各个位置,moles[i] [t,x,y] 表…

踩坑实录(Third Day)

临近年关,同事们该回家的也都回家了,所以我对工作的欲望不是很强烈,所以就主要是自己学习了一下,在 B 站看看视频,自己敲代码,所以今天没遇到什么坑,但是可以分享一下之前踩到的两个坑。 此为第…

Flutter开发模仿百度云盘创建文件夹功能Draggable和DragTarget的混合使用

使用LongPressDraggable和DragTarget写了个类似于百度云盘管理文件和文件夹的功能(为了避免和列表的滑动手势冲突,所以采用LongPressDraggable而不是Draggable): 1、拖拽文件到文件夹中 2、拖拽两个文件可以合并成一个新的文件夹…