if __name__=='__main()__:
2016-04-27 20:47
316 查看
python 中常常出现if __name__==’__main()__’:语句,它的主要作用是用于测试时使用。
我们可以向函数传递参数,argc统计的是argv[]中参数,而argv[]记录的是函数中的第0个参数是执行文件的名字,后面的参数是执行可执行文件后传递到main函数中的参数
所以我们在执行一个.py文件的时候,而该文件中只是定义了一个或者多个函数时,我们要测试这些函数就需要利用这个接口,利用这个接口我们就自己调用自己
我想这样就可以很清晰的知道if __name__==’__main()__:的作用了
#也就是只有在执行文件中的__name__等于’__main__’,被调用的文件中的__name__就等于当前文件名
程序接口,怎么就是程序接口呢???
学过c/c++的都知道,在我们使用main()函数的时候我们是可以向main()函数传递参数的,eg.void main(int argc,char** argv)
我们可以向函数传递参数,argc统计的是argv[]中参数,而argv[]记录的是函数中的第0个参数是执行文件的名字,后面的参数是执行可执行文件后传递到main函数中的参数
./a.out val1 val2 va3 argv[0]="a.out" argv[1]=val1 argv[2]=val2 argv[3]=val3
所以我们在执行一个.py文件的时候,而该文件中只是定义了一个或者多个函数时,我们要测试这些函数就需要利用这个接口,利用这个接口我们就自己调用自己
测试时使用,怎么使用???
#Filename:test.py def func1(para1,para2): do something with para1 and para2 ... def func2(...): ... ... if __name__=='__main__': val1=argv[1] val2=argv[2] func(val1,val2)#调用上面的函数,并传入参数。 #直接执行test.py val1 val2 #则__name__='__main__',且'__main__'则条件成立,则执行条件语句下面的语句。若你在其他的.py中import test.py的时候__name__就与'__main__'不想等了,那就不会执行条件语句下面的语句。
那__name__值又是怎样变化的呢?
****自己调用**** #!/usr/bin/python #Filename:test.py from sys import argv def func(para1,para2): print int(para1)+int(para2) print __print__ if __name__=='__main__': val1=argv[1] val2=argv[2] func(val1,val2) 运行结果: ~$ python test.py 3 4 7 __main__ ****其他.py文件调用**** #!/use/bin/python #Filename:other.py from test import func print func(4,4) print __name__ 运行结果: ~$ python other.py 8 test __main__
我想这样就可以很清晰的知道if __name__==’__main()__:的作用了
#也就是只有在执行文件中的__name__等于’__main__’,被调用的文件中的__name__就等于当前文件名
相关文章推荐
- LightOJ 1038 Race to 1 Again
- leetcode-172. Factorial Trailing Zeroes
- 解读(三):分析MainActivity, 程序的界面主体框架
- 启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name
- 启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name
- 【Realflow】Domain 节点翻译
- 人工智能大拿解答机器学习30个问答
- 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析
- 线程sleep() 和 wait()简单比较
- MySQLReplicaion的常用架构
- grails在服务类中获取配置文件的值
- 调用grails领域类save方法没反应,不成功问题
- Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
- CTS DownloadManagerTest testMinimumDownload failed
- CTS DownloadManagerTest testMinimumDownload failed
- 2014年山东ACM第五届省赛 angry_birds_again_and_again(数学积分)
- error: linker command failed with exit code 1 (use -v to see invocation)怎么解决
- Climbing Stairs 带测试版
- win7系统开机提示cpu variable mtrr configure failed解决方法
- relation "public.***" contains more than "max_fsm_pages" pages with useful free space