-
Python入门教学——if __name__==‘__main__‘:
1、简介
- 对于很多编程语言来说,程序都必须要有一个入口,比如C 和 C++ 都需要有一个 main 函数来作为程序的入口,即程序的运行会从 main 函数开始。
- 但和C,C++等有所不同的是,Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,python是动态的逐行解释运行,也就是从脚本第一行开始运行,没有统一的入口。
- python文件有两种使用方法:
- 直接作为脚本执行。
- import到其他的python脚本中被调用执行,即作为模块(库)被导入执行。
- 不管是直接运行还是导入,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。但实际使用过程中,python文件作为模块被其它python脚本调用执行的时候,有的代码我们是不希望被运行的。
- 而if __name__=='__main__':的作用就是定义这两种情况执行代码的执行方式,在该语句下的代码只有在文件作为脚本直接执行情况下才会被执行,而import到其他脚本中是不会被执行的。
2、举例
- 我们编写两个模块代码,在demo1中编写add函数,并且调用。在demo2中引入add函数,并且调用。
- 运行后demo2会发现,两个调用都被实现了,这并不是我们想要的结果。
- 对demo1的代码进行修改。
,将demo1中的函数调用添加到if __name__=='__main__':中。
- 再次运行demo2,仅有demo2中的函数调用被实现。

- 因为,demo1是被导入到其他的python脚本中运行的,所以if __name__=='__main__':下的代码块被执行。
3、原理
- 每个python模块(单个python文件)都包含内置的变量__name__,当模块被直接执行时,__name__等于文件名(包含后缀.py)。当模块import到其他脚本文件时,则__name__等于模块名称(不包含后缀.py)。而'__main__'等于当前执行文件的名称(包含了后缀.py)。故当模块作为脚本文件直接执行时,__name__=='__main__'结果为真,所以后续代码可以继续执行。
- 例如:
- 在demo1.py中输出__name__,运行后可以看出变量__name__的值为'__main__'。

- 再运行demo2,可以看到此时输出的变量__name__为demo1。

-
相关阅读:
unr #6day1 T2题解
vue快速学习03、ant-design
Linux cat命令详解使用:高效文本内容管理
Vue开发实例(六)实现左侧菜单导航
JAVA学习(递归)
vue3 父子组件之间的方法调用
The 2022 ICPC Asia Regionals Online Contest (I)
易基因:植物宏病毒组研究:植物病毒的进化与生态 | 顶刊综述
韩顺平Java | C27 正则表达式
numpy用savez_compressed压缩数据
-
原文地址:https://blog.csdn.net/weixin_45100742/article/details/132833277