您的位置:首页 > 大数据 > 人工智能

if __name__=='__main()__:

2016-04-27 20:47 316 查看
python 中常常出现if __name__==’__main()__’:语句,它的主要作用是用于测试时使用。

程序接口,怎么就是程序接口呢???

学过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__就等于当前文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: