python里面的之前打过的记忆信息-python中的if __name__ == 'main'
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用:
对于编程语言来说,程序都必须要有一个入口,比如java和c#必须要有一个包含main方法的主类来作为程序的入口
而python则不同,它属于脚本语言,它是从脚本的第一行开始执行,没有统一的入口。
一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。
if __name__ == '__main__' 就相当于是 Python 模拟的程序入口,由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__ 的值。
__name__ 是内置变量,用于表示当前模块的名字,如果一个模块被直接运行,其 __name__ 值为 __main__。
if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。
举个例子,下面在test.py中写入如下代码:
print "I am the first"
if __name__=="__main__":
print "I am the second"
直接执行test.py 会打印两行 :
I am the first
I am the second
然后在同一文件夹新建名称为import_test.py的脚本,只输入如代码:
import test
执行 import_test.py ,只打印一行 “I am the first”,说明 if __name=="__main__":后面的代码没有执行
我们在test.py脚本的if __name__=="__main__":之前加入print __name__,即将__name__打印出来。文件内容和结果如下
print "I am the first"
print __name__
if __name__=="__main__":
print "I am the second"
I am the first
__main__
I am the second
可以看出,此时变量__name__的值为"__main__";
再执行import_test.py,模块内容和执行结果如下
I am the first
test
此时,test.py中的__name__变量值为test,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。
python里面的之前打过的记忆信息-python中的if __name__ == 'main'相关推荐
- python里面的之前打过的记忆信息-python中的记忆:如何缓存函数的运行结果(1)
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 使用称为"memoization"的强大而方便的缓存技术来加速您的Python程序. ...
- python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
今天要介绍的 Python 3 Cheat Sheet 由法国国家科学研究中心(CNRS)的法国机械工程与信息技术实验室(LIMSI)的工程师 Laurent Pointal 总结.这个简单的 Che ...
- python里面的之前打过的记忆信息-python 中 __init__方法
注意1,__init__并不相当于C#中的构造函数,执行它的时候,实例已构造出来了. class A(object): def __init__(self,name): self.name=name ...
- if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...
来源:菜鸟分析 链接: https://zhuanlan.zhihu.com/p/34112508 一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述 ...
- python编程中的if __name__ == 'main': 的作用和原理
<背景> 在大多数编排得好一点的脚本或者程序里面都有这段 if __name__ == 'main': <这段代码的功能> 一个python的文件有两种使用的方法: ➤第一是直 ...
- python日历小程序_一个查看网络设备信息Python小程序
原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...
- python编程中的if __name__ == 'main': 的作用和原理[2]
这个问题来自于知乎用户的提问,当时看到这个问题,我只是做了下简单的回答.后来我发现,对于很多人来说,更准确的说应该是大部分的 Python 初学者,对这个问题理解的不是很深刻.所以这里我来做下总结,并 ...
- python编程中的if __name__ == 'main' 的作用和原理
在大多数编排得好一点的脚本或者程序里面都有这段if __name__ == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与大家分享一下. 1.代码的功能 一个pyth ...
- python里面的之前打过的记忆信息-忘了Python关键语句?这份备忘录拯救你的记忆...
Python 3 Cheat Sheet 一共包含两页,分成了多个框图,涉及基本的 Python 数据结构.数学运算.条件和循环语句.文件读写,以及异常值处理等.在每个框图中,右上角是类型名称,蓝色和 ...
最新文章
- 中文实体识别最新SOTA算法
- 他是阿里 P11,靠写代码写成合伙人,身家几十亿,没有他,我们可能刷不了淘宝!...
- hexdump——Linux系统的二进制文件查看工具
- python pillow环境_Python环境Pillow( PIL )图像处理工具使用解析
- 大页内存(HugePages)
- 系统架构师 项目经理 哪个更有前景_中央空调加地暖与五恒系统,哪个更省钱?...
- mips汇编计算开方_东南大学计算机系统综合设计MOOC第5期开课
- bzoj5108 [CodePlus2017]可做题 位运算dp+离散
- 吴恩达都在做的AI农业到底有什么魔力?
- 需要缺少的Web组件才能加载,以及项目加载后显示“不可用”的解决方法
- android开发,动态图标,Android动态更新APP图标
- java中使用poi导出ppt(图片和表格)
- 阿里云Api网关导入Swagger功能简介
- 时间序列分析中的移动平均趋势剔除法
- iPhone 中常用、好用的提醒类软件(闹钟、提醒事项、日历、滴答清单)
- Linux 时间校准与同步
- 2000年-2009年华语金曲榜
- python程序运行结果始终为0_下列 Python 程序的运行结果是( )。 x=0 y=True print(xy and 'A''B')_学小易找答案...
- WIN7 旗舰版 只有“睡眠”没有“休眠”,要怎样添加“休眠”功能?
- cad图纸问号怎么转换文字_cad打开后图形文字显示问号该怎么办?