if __name__ == 'main': 的作用和原理
if __name__ == 'main':
功能
一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。
if __name__ == 'main': 的作用:
就是控制这两种情况执行代码的过程,在“if __name__ == 'main': ”下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。
原理
每个python模块(python文件,也就是*.py)都包含内置的变量__name__。
1. 当运行模块(A.py)作为脚本自己去运行的话,对应的模块名始终叫做__main__,即模块A.py文件本身,而__name__等于模块名称,也就等于__main__;
2. 如果模块(A.py)import到其他模块(B.py)中,对应的模块名叫做A,则__name__等于模块名称A。
所以,当模块被直接执行时,__name__ == '__main__'结果为真;当模块被import到其他的python脚本中被调用执行,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。
test.py
print("I'm the first.")
print(__name__)
if __name__=="__main__":
print("I'm the second.")
python test.py的结果:
I'm the first.
__main__
I'm the second.
import_test.py
import test
python import_test.py的结果:
I'm the first.
test
此时,test.py中的__name__变量值为test,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。
__name__
如果是放在Modules模块中,就表示是模块的名字;
如果是放在Classs类中,就表示类的名字
__main__
模块第一次被导出(import)后,系统会自动为其创建一个域名空间(namespace);(模块,都是有自己的名字的)此处的脚本的主模块的名字,始终都叫做__main__。
【参考文档】
python编程中的if __name__ == 'main': 的作用和原理:http://www.dengfeilong.com/post/60.html
Python中的__name__和__main__含义详解:https://blog.csdn.net/jjwen/article/details/53084882
Python中的__name__和__main__含义详解: https://www.crifan.com/python_detailed_explain_about___name___and___main__/comment-page-1/
if __name__ == 'main': 的作用和原理的更多相关文章
- python编程中的if __name__ == 'main': 的作用和原理
在大多数编排得好一点的脚本或者程序里面都有这段if __name__ == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与打架分享. 1.这段代码的功能 一个pyth ...
- python if __name__ == 'main' 的作用和原理()
相信初学者在学习Python的过程中,不可避免的总会遇到 if __name__ == 'main'语句,虽然一直知道它的作用,但是可能一直比较模糊,今天菜鸟分析就与大家一起举例说说我的理解. 举个例 ...
- Python中if __name__ == 'main' 的作用和原理
参考网址:http://mp.weixin.qq.com/s/kxxhOQ7KB_VMwWeUENX7OQ t1.py: print('Loving Python') def main(): prin ...
- Python 中if __name__ == '__main__': 的作用和原理
转自https://blog.csdn.net/weixin_42660771/article/details/84035153 1.代码的功能 一个python的文件有两种使用的方法,第一是直接作为 ...
- 如何理解python中的if __name__=='main'的作用
一. 一个浅显易懂的比喻 我们在学习python编程时,不可避免的会遇到if __name__=='main'这样的语句,它到底有什么作用呢? <如何简单地理解Python中的if __name ...
- if __name__ == '__main__'的作用和原理
最简单的理解就是这样: __name__ 是当前模块名,当模块被直接运行时,模块名为 __main__. 所以 if __name__ == '__main__' 这句话的意思就是当前模块被直接运行时 ...
- Python中if __name__ == '__main__':的作用和原理
if __name__ == '__main__':的作用 一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行. ...
- python编程中的if __name__ == 'main与windows中使用多进程
if __name__ == 'main 一个python的文件有两种使用的方法,第一是直接作为程序执行,第二是import到其他的python程序中被调用(模块重用)执行. 因此if __name_ ...
- python中的if __name__ == 'main'
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用: 对于编程语言来说,程序都必须要有一个入口,比如java和c#必须要 ...
随机推荐
- java web(四):request、response一些用法和文件的上传和下载
上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...
- Pytho条件判断
def health_status(): height = float(input("请输入身高(单位:米) :")) weight = float(input("请输入 ...
- Android与Linux内核的对应关系
1. Android各版本和Linux版本对应关系 Android Version |API Level |Linux Kernel in AOSP ------------------------- ...
- git 命令提交文件
方法/步骤 打开要添加的文件的位置,右键,点击下面强调的内容,进入命令页面 先执行命git pull,这是提交的基本操作, git status,查看现在当前的文件状态 没有看到你现在要添加的文件 ...
- Flagr 配置说明
说明文档来自官方文档 https://checkr.github.io/flagr/#/flagr_env 完整配置 包含了组件的配置参数以及说明,对于学习如何使用Flagr 还是很重要的,包含了数据 ...
- The Oregon Trail 俄勒冈之旅
发售年份 1971 平台 多平台 开发商 MECC 类型 教育娱乐 https://www.youtube.com/watch?v=QBOLN7I8omY
- 创建一个dynamics 365 CRM online plugin (十) - Isolation mode or trust mode
Isolation Mode 也被称作为Plugin Trust CRM里面有两种plugin trust / isolation mode 1. Full Trust 只在OP系统中可使用,没有限制 ...
- ORACLE数据库在导入导出时序列不一致的问题
ORACLE数据库在导入导出时序列不一致的问题 在使用ORACLE数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成.但当你需要对数据库进行导入导出时,序列很容易出问题. 当你 ...
- 多次ajax请求数据json出错!!
问题描述: 1.对象数据存放在session中,每次从session中取数据 2.jsp初始化完毕调用ajax请求,返回的数据格式出错(返回部分数据,即丢失了部分数据) 解决方案:
- ORA-00984: 列在此处不允许 SQL parse error location
ORA-00984: 列在此处不允许SQL parse error location Oracle 插入数据的时候一直提示列在此处不允许.网上搜索答案说是类型不匹配的多,但我的错误确是一个低级错误 ...