if __name__ == '__main__' 这段代码怎么理解???
__name__是内置变量,可用于表示当前模块的名字,而“__main__”等于当前执行文件的名称。 两个名称搞不清没关系,往下看待会解释
对很多编程语言来说,程序都需要一个入口,例如C系列、Java,都需要有一个main函数作为程序的入口,而python作为脚本语言则不一样,从第一行就开始执行,并没有统一的入口。
一个python的文件有两种使用的方法,第一是直接作为脚本直接执行,第二是import到其他的python脚本中作为模块被调用执行。但是在被当作模块导入的时候总有一部分代码是不希望被运行的,而 if __name__ == '__main__' : 的作用就是控制两种情况下代码的运行。
print(__name__) print("this is song ")
if __name__=='__main__':
print("this is songsong ")
此时 if __name__=='__main__': 之前的语句被执行,之后的语句也被执行
第二种情况被导入其他文件调用
from practice import b
小提示:此处导入了第一个文件,所以会执行第一个文件的代码,不要问为什么第二个文件没代码
此时 if __name__=='__main__': 之前的语句被执行,之后的语句没有被执行
小结:文件直接运行时,if __name__=='__main__':之后的语句会被执行;当文件被当作模块导入到其他文件时,if __name__=='__main__':之后的语句不会被执行
此时回到第一行,开始解释!
上述两个文件第一个 print(__name__) 结果为__main__,第二个print(__name__)结果为practice.b
__main__无论何时都是表示当前执行文件的名字,而__name__表示当前模块的名字
如果没有引用模块直接执行文件,__name__就等于__main__;如果导入了模块,__name__就等于模块名(例如:practice.b)
新手上路,多谢指教!
if __name__ == '__main__' 这段代码怎么理解???的更多相关文章
- 怎样解决if __name__ == "__main__":下面的代码没有执行的问题
很多初学者可能在用pycharm运行代码时会出现if __name__ == "__main__":下面的代码没有执行的问题,出现这类问题的原因是unittest运行姿势造成的,如 ...
- opengl笔记——旋转,一段代码的理解
重看:opengl笔记——OpenGL好资料备忘 在找到这段代码,对理解opengl旋转很有帮助 ... glPushMatrix(); // initialze ModelView matrix g ...
- 使用unittest,if __name__ == '__main__':里代码不执行的解决办法
参考:https://www.cnblogs.com/hanmk/p/8656574.html
- Python中if __name__ == "__main__": 的理解
1.在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在pytho ...
- 如何简单地理解Python中的if __name__ == '__main__'
https://blog.csdn.net/yjk13703623757/article/details/77918633 1. 摘要 通俗的理解__name__ == '__main__':假如你叫 ...
- 理解 if __name__ == '__main__'
简单地理解Python中的if __name__ == '__main__' if __name__ == '__main__'的意思是: 当.py文件被直接运行时,if __name__ == '_ ...
- 如何简单地理解Python中的if __name__ == '__main__'(https://blog.csdn.net/yjk13703623757/article/details/77918633)
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- Python中“if __name__=='__main__':”理解与总结
1 引言 在Python当中,如果代码写得规范一些,通常会写上一句“if __name__==’__main__:”作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪 ...
- 理解 python 中__name__ = '__main__' 的作用
很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...
随机推荐
- Codeforces 852I Dating 树上莫队
Dating 随便树上莫队搞一搞就好啦. #include<bits/stdc++.h> #define LL long long #define LD long double #defi ...
- Win10环境下载安装MySQL Community 8.0.12
1.下载MySQL Community 8.0.12的免安装版,下载地址:https://dev.mysql.com/downloads/mysql/ 2.解压到D:\Program Files\My ...
- 2018-2019-1 20189201 《LInux内核原理与分析》第五周作业
甜死人的图片 一.书本第四章知识总结[系统调用的三层机制(上)] 无参数系统调用 依次通过c语言和内嵌汇编的c语言实现time()函数中封装的系统调用. 用户态.内核态和中断 用户态:在低的执行级别下 ...
- Git permission denied(public key) 解决方法
1. 在Linux上: # ssh-keygen ##一定用 id_rsa.pub # cat /root/.ssh/id_rsa.pub 2. copy 整个文件内容到剪切板 3. 打开 ...
- 数据挖掘算法——Apriori算法
Apriori算法 首先,Apriori算法是关联规则挖掘中很基础也很经典的一个算法. 转载来自:链接:https://www.jianshu.com/p/26d61b83492e 所以做如下补充: ...
- HRBUST 1181 移动 bfs模板
#include<bits/stdc++.h>///该头文件为万能头文件,有些学校oj不能使用,读者可根据需要自行修改 using namespace std; ; int vis[MAX ...
- Django与ajax、分页器
ajax简单数据响应 ajax请求,后台只需要返回信息,所以不会出现render.redirect 模板层: $('.btn').click(function() { $.ajax({ url: '/ ...
- 05-Python入门学习-字符串与列表的内置方法
字符串 一:基本使用 1 用途: 记录描述性的状态,比如人的名字.地址.性别 2 定义方式: 在"",'',"""""" ...
- 2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017)
A. Airport Coffee 设$f_i$表示考虑前$i$个咖啡厅,且在$i$处买咖啡的最小时间,通过单调队列优化转移. 时间复杂度$O(n)$. #include<cstdio> ...
- mac 配置 ssh 到git (Could not resolve hostname github.com, Failed to connect to github.com port 443 Operation timed out)
1.进入终端命令行 (1)输入:cd .ssh/ 进入到.ssh后,输入ls,会输出“known_hosts”,如果没有创建过rsa的话 (2)输入:man ssh-add (3)输入:ssh-key ...