if __name__=='__main()__:

来源:互联网 发布:乐高moc软件 编辑:程序博客网 时间:2024/06/13 11:36

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]=val1argv[2]=val2argv[3]=val3

所以我们在执行一个.py文件的时候,而该文件中只是定义了一个或者多个函数时,我们要测试这些函数就需要利用这个接口,利用这个接口我们就自己调用自己

测试时使用,怎么使用???

#Filename:test.pydef 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.pyfrom sys import argvdef 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 47__main__****其他.py文件调用****#!/use/bin/python#Filename:other.pyfrom test import funcprint func(4,4)print __name__运行结果:~$ python other.py 8test__main__

我想这样就可以很清晰的知道if __name__==’__main()__:的作用了
#也就是只有在执行文件中的__name__等于’__main__’,被调用的文件中的__name__就等于当前文件名

0 0