[Python]理解 if __name__ == ‘__main__‘
文章目录
本篇文章,参考并改编了
https://www.jianshu.com/p/989953d468d9
在很多utility程序中,我们会经常看到这样一句:
if __neme__ == "__main__" :
我们都只到python编写的文件可以直接运行,也可以当做模块来引用,不管哪一种方式,最顶层(以缩进方式来划分),都会被执行。
作用:
实际项目中,可能我们希望在引用这个module模块的时候,并不希望在导入的时候去执行顶层的code。
if __neme__ == "__main__" : 的作用就是放在里面的code只有在直接运行时候才生效执行,而作为模块被引用的时候是不执行的
举例:
下面是一个test.py
我直接运行上面这个程序,print("in")将会执行
。
如果我采用导入的方式,则不会执行
print(“in”)
最后
如果学过 C 或者 C++,知道程序入口是一个 main 函数。if name == ‘main’:的作用跟这个 main 函数相似,可以看作 Python 模拟的程序入口。而事实上,Python 是从源码文件的第一行开始,逐行解释然后运行,没有统一的程序入口。所以if name == ‘main’: 只能说是模拟的程序入口。
特别要注意__name__
的引号是没有的,因为他是一个内置变量
if __name__ == '__main__':
不是
if "__name__ "== '__main__':
作者:胖三斤66
链接:https://www.jianshu.com/p/989953d468d9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
[Python]理解 if __name__ == ‘__main__‘相关推荐
- Python中if __name__ == '__main__':作用
Python中if __name__ == '__main__':作用 2012-03-22 11:52:40 分类: Python/Ruby #hello.py def sayHello(): st ...
- python 中if __name__ = '__main__' 的作用
python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...
- python中if __name__ == '__main__': 的解析
2019独角兽企业重金招聘Python工程师标准>>> python中if __name__ == '__main__': 的解析 当你打开一个.py文件时,经常会在代码的最下面看到 ...
- python中的__name__=='__main__'如何简单理解(一)
1. 摘要: 通俗的理解_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明'):在你自己眼中,你是你自己(_name_ == '_main_') ...
- Python中if __name__=='__main__': 理解与总结(看这篇就够了,一文扫清疑惑!)
前言 在Python当中,如果代码写得规范一些,通常会写上一句if '__name__'=='__main__:'作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪里 ...
- python 有关 if __name__ == ‘__main__‘ 的正确理解
写此文章的初衷在于笔者碰到一道题目如下: "假设有Python程序文件a.py,其代码如下: def main():if __name__ == '__main__':print(1)els ...
- Python 中 if __name__ == '__main__': 的理解
1.这段代码的功能 一个 Python 的文件有两种使用的方法,第一是直接作为脚本执行,第二是 import 到其他的 Python 脚本中被调用(模块重用)执行.因此 if __name__ == ...
- python中if __name__ == ‘__main__‘:的简单理解
举例说明,这里有两个模块 # ni模块 print("这是1.") if __name__ == '__main__':print("这是2.")'''输出结果 ...
- Python的if __name__ == ‘__main__‘:的作用
程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...
最新文章
- 《PHP、MySQL和Apache入门经典(第5版)》一2.11 实践练习
- Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响
- eclipse + maven搭建SSM框架
- pythonpop方法桐柏到郑州大_python脚本之一键移动自定格式文件方法实例
- Springboot 集成Springcloud gateway的入门
- python最小值最大化和最大值最小化_OJ 21658::Monthly Expense(二分搜索+最小化最大值)...
- 【计算机网络】SIP会话时,使用重定向与不使用重定向功能的区别
- 下面列出LoadRunner的性能测试流程
- python如何制作地图热力图
- Make it Divisible by 25
- 小程序引入的echarts过大如何解决_在微信小程序中使用 ECharts
- 「MacTeX 小笔记」LaTeX 学习资料推荐篇
- 二维数组与字符数组——英文字母、数字字符及其他字符的个数
- Jmeter阶梯压力测试_导出测试报告
- 单片机与PC机串口通信编程
- 【优化调度】粒子群算法求解水火电调度优化问题【含Matlab源码 1181期】
- 《Android NFC开发实战详解》——6.4节Android NFC P2P开发进阶
- 仪器仪表应用,国产IC用于替代AD7792,AD7793的型号分享,完全P=P
- Flutter自定义圆形选择框
- 专业显卡测试软件 spec,SPECviewperf 12.1专业性能测试