Python中的 if __name__ == “__main__“到底是个啥意思?_python中if __name__="__main__"是什么意思-程序员宅基地

技术标签: python  

转载于:https://blog.csdn.net/weixin_35684521/article/details/81396434 侵删
对于Python初学者来说,在看别人代码时经常会看到if name == “main”,这时心里就开始吐槽:“绝对又是装逼,我特么不写这句话,代码不照样跑得好好的!

我刚开始碰到这行代码时,心里也是这样想的!

吐槽归吐槽,存在必然有存在的道理。现在就来看看这句代码到底是个啥意思,因为这句话能够帮你对Python模块的理解上一个层次。

通过例子来理解
只要你创建了一个模块(一个.py文件),这个模块就有一个内置属性name生成,该模块的 name 的值取决于如何应用这个模块。说人话就是,如果你直接运行该模块,那么__name__ == “main”;如果你 import 一个模块,那么模块name 的值通常为模块文件名。

如,创建一个test1.py:

def func():
    print('hello, world!')

if __name__ == "__main__":
    func()

模块中,首先定义了函数func(),用来打印出hello, world!,然后判断__name__ 是否等于 main,如果等于,有打印,反之则反,现在运行该模块,结果为:

hello, world!

运行结果仅有bye, world!,说明__name__ 不等于 main

通过上面test1.py和test2.py两个模块,我们现在可以得出一个非常实用的结论: 如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoma19941027/article/details/109672181

智能推荐

实验4微程序控制器实验_微程序控制器实验报告-程序员宅基地

文章浏览阅读2.4w次,点赞45次,收藏188次。首先说明一下,我这部分的实验结果、思考和分析都是自己搜了搜资料自己写的,不能保证正确性,如果哪里有问题还望大家多多指正电路图:链接:https://pan.baidu.com/s/1Tlbjs5_t-GYYkomWh5nO7A?pwd=2333提取码:2333–来自百度网盘超级会员V5的分享报告:实验4微程序控制器实验4.1实验目的(1)掌握微程序控制器的组成原理和工作过程。(2)理解微指令和微程序的概念,理解微指令与指令的区别和联系。(3)掌握指令操作码与控制存储器中微程序的对应方法,_微程序控制器实验报告

Build an RFC Server with NCo 3.0 – A Step-By-Step Guide_nco prior to 3.0.3 did not accept duplicate parame-程序员宅基地

文章浏览阅读1.7k次。This blog describes how to build a simple RFC Server using the SAP NCo 3.0. The sample program implements RFC STFC_CONNECTION. STFC_CONNECTION is a good example to use because it contains both importing and exporting parameters.Click here to request a _nco prior to 3.0.3 did not accept duplicate parameter names and threw an rfc

react native ios打包到真机_react native ios真机打包失败-程序员宅基地

文章浏览阅读1.8k次。每当在模拟器上完成了开发,都想到真机上秀秀,正好前段时候买了一个mac,哈哈有机会了。 前篇文章以android为例,这里就以ios为例,讲一下打包到iphone真机的流程。 一、前置1.首先你得有一部iphone2.首先react native的环境要正确安装,还未完成这一步的,请到官网或中文站查看具体流程3.xcode等环境安装完毕4.rn应用能在模拟器中跑_react native ios真机打包失败

学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)_jkljkl-程序员宅基地

文章浏览阅读153次。1、cin2、cin.get()3、cin.getline()4、getline()5、gets()6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream>using namespace std;main (){int a,b;cin>>a&..._jkljkl

gRPC C++ windows程序实践(一)_windows cmake grpc-程序员宅基地

文章浏览阅读763次。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。gRPC1. 下载代码repo:https://github.com/grpc/grpc.gitgit clone https://_windows cmake grpc

随便推点

[转]Golang 中使用 JSON 的小技巧-程序员宅基地

文章浏览阅读107次。taowen是json-iterator的作者。 序列化和反序列化需要处理JSON和struct的关系,其中会用到一些技巧。 原文Golang 中使用 JSON 的小技巧是他的经验之谈,介绍了一些struct解析成json的技巧,以及 json-iterator 库的一些便利的处理。有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:",stri..._extra.registerfuzzydecoders

ODrive踩坑(四)AS5047P-SPI绝对值磁编码器,不需每次上电校准无刷电机,直接上电可用_绝对值码盘测量芯片-程序员宅基地

文章浏览阅读1.5w次,点赞23次,收藏127次。前两篇已经介绍过ODrive在Windows下的使用环境搭建,以及TLE5012B - ABI编码器闭环运动的基本配置。ODrive踩坑(一)windows下使用环境的搭建,odrivetool及USB驱动的安装ODrive踩坑(二)电机和编码器参数配置、校准、位置闭环模式转动电机(TLE5012B - ABI)但苦于使用 ABI编码器,每次上电都要编码器校准,电机左转一圈再右转一圈。浪费时间不说,校准运动还可能导致上电意外。如果想要你的设备上电不经过编码器校准,通电后直接就能用,可能要用到 SPI绝_绝对值码盘测量芯片

JAVA 连接FTPServer服务器返回220状态码_220 service ready for new user-程序员宅基地

文章浏览阅读6.7k次。有个功能需要连接FTP服务器,遇到了一个很神奇的问题.就是正常的FTP工具类通过IP,Port,Username,Password连接,这个类很简单的,我自己也本机搭建服务器做过测试是可以使用的.但是这一次连接返回了220的状态码,这个状态码的含义是220 Service ready for new user(新连接的用户的服务已就绪),产生了异常.2XX开头的状态码应该是成功的意思,但是..._220 service ready for new user

严恭敏老师PSINS工具箱解读——trjfile_psins数据格式-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏15次。感谢严老师的无私奉献trjfile——加载或保存轨迹数据function trj = trjfile(fname, trj)——'加载或保存轨迹数据'% Save or load trajectory *.mat file.%% Prototype: trj = trjfile(fname, trj)% Inputs: fname - file name, with default extension '.mat'——'文件名'% trj - trajectory.._psins数据格式

oracle order by 为空,Oracleorderby处理NULL值-程序员宅基地

文章浏览阅读261次。1、缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前2、使用nvl函数 nvl函1、缺省处理Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前2、使用nvl函数nvl函数可以将输入参数为空时转换为一特定值,如nvl(employee_name,’张三’)表示当..._oracle order by 空值

UnityWebRequest的初步使用及常用方法解析_unitywebrequest dispose-程序员宅基地

文章浏览阅读7w次,点赞37次,收藏173次。今天,来学习一下Unity新的网络请求方式UnityWebRequest还是老规矩,先看描述。描述UnityWebRequest对象用于与Web服务器通信。UnityWebRequests处理与Web服务器的HTTP通信流。 其他对象 - 特别是DownloadHandler和UploadHandler - 分别管理下载和上传数据。注意:一旦UnityWebRequest开始通过调用S..._unitywebrequest dispose