python中if __name__ == '__main__'是什么?
__name__和__main__认识
作用:一般用于测试程序的功能,if __name__ == '__main__':下面的代码会被执行,但当前.py文件被当做模块导入的时候,main下面的代码就不会被执行,防止测试代码被执行。
语法:
if __name__ == '__main__':
要执行的测试模块
if __name__ == "__main__":可以看成是python程序的入口,就像java中的main()方法,但不完全正确。
在.py文件中,除了def后面定义函数外的代码都会被认为是“main”方法中的内容,从而从上而下执行。
如果只是写一个print('hello world'),那这一句话就是一个程序,因此不需要所谓的"main"方法入口,直接运行测试就可以。
但如果是测试函数功能,我们就需要在.py文件中写上if__name__=="__main__",再调用函数,当然,如果你不写的话,也没关系,也可以直接将函数加括号进行调用。
我们写的目的就是防止后面会把当前.py文件当做模块导入其他.py文件中,从而误触发测试代码。
__name__的变化
1、__name__其实就是一个内置属性,在自己的py文件中被执行,__name__属性的值就是__main__:
示例代码:
# test.py
print("first")
def say_hello():
print(__name__)
if __name__ == '__main__':
print(__name__)
say_hello()
运行结果:
first
__main__
__main__
2、将test.py文件导入其他文件中,__name__就会变为当前模块的名字,例如:__test__。
实例代码:
# work.py
import test # 导入test
if __name__ == '__main__':
test.say_hello()
print(__name__)
执行结果:
first
test
__main__
总结:python不像JAVA中一样拥有main()方法的特点。所谓的入口其实也就是一个if条件语句,判断成功就执行下面if中的代码。JAVA等其他语言中会有特定的内置函数去识别main()方法入口,在main()方法中从上而下执行。
python中if __name__ == '__main__'是什么?的更多相关文章
- python 中if __name__ = '__main__' 的作用
python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...
- python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...
- python中if __name__ == '__main__'
python 中__name__ = '__main__' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: “Make a script both importable and execut ...
- python基础之python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...
- FAQ: Python中if __name__ == '__main__':作用
#hello.pydef sayHello(): str="hello" print(str); if __name__ == "__main__": prin ...
- python中if __name__ == '__main__': 解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一 ...
- Python中if __name__ == '__main__':作用
#hello.pydef sayHello(): str="hello" print(str); if__name__=="__main__": print ( ...
- Python常见经典 python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...
- python中if __name__ == '__main__': 的解析(转载)
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...
- python 中的__name__ == "__main__"(转)
有句话经典的概括了这段代码的意义: “Make a script both importable and executable” 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可 ...
随机推荐
- XMemcached 中文api
变更历史 2010-06-22 添加客户端分布和SASL验证两节,更新spring配置一节. 2010-06-23 添加maven依赖说明 2010-10-17 1.2.6 released 2011 ...
- android 新闻应用、Xposed模块、酷炫的加载动画、下载模块、九宫格控件等源码
Android精选源码 灵活的ShadowView,可替代CardView使用 基于Tesseract-OCR实现自动扫描识别手机号 Android播放界面仿QQ音乐开源音乐播放器 新闻应用项目采用了 ...
- [LC] 131. Palindrome Partitioning
Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...
- ionic3 设置状态栏背景颜色
this.statusBar.styleDefault(); this.statusBar.overlaysWebView(true); this.statusBar.backgroundColorB ...
- PHP小点注意
(1)控制器不可以有list,因为它属于thinkPHP的保留关键字,不可以重名
- sql语句查询去除重复语句的结果集
返回operation表中time列的唯一值 语句1 select time from operation group by time having count(time) > ...
- python+locust性能测试-最简单的登录点击次数
from locust import HttpLocust,TaskSet,task import os class UserBehavior(TaskSet): @task def login(se ...
- 《C程序设计语言》练习 1-8,1-9
#include <stdio.h> /*编写一个统计空格,制表符与换行符个数的程序*/ main() { int a,b,c,d;//a表示空格个数,b表示制表符个数,c表示换行符个数 ...
- Qt Sleep、QCoreApplication::processEvents()(最佳的平衡:一边发送消息,一边睡眠)
sleep()//秒 msleep()//毫秒 usleep()//微秒 以前为了模拟鼠标点击用过这些函数,可以让进程中断,今天发现我原来的做法其实不对.这组函数会将你当前的线程/进程变为“睡眠”状态 ...
- NI Vision 介绍
NI Vision主要包括三种主要软件包: 主程序包(Vision Acquisition Software), 视觉开发模块(Vision Development Module), 以及用于自动检测 ...