python文件中的__name__=='__main__'的使用及调用其他py文件中的函数方法

来源:互联网 发布:qt linux sleep头文件 编辑:程序博客网 时间:2024/03/29 13:18

最近学习python的时候经常会看到好多py文件中都有if _name_ == ‘_main_‘: 这句话,所以就花点儿时间来研究一下,总结了一下使用方法及原则。

平时我们使用python IDE编写py程序的时候 一般是很少用到if name == ‘main‘:这句话的,因为我们在运行py文件时,没有牵扯到其他目录下自定义的py文件,所以不用写这句话就可以无忧地执行当前py文件中的函数,但 想想 如果要是需要调用其他的py文件中的自定义函数呢?这就需要使用if name == ‘main‘:了。

举例:

def a(x):    return x*2if __name__=="__main__":    print a(2) #print 4

这里使用的单文件运行,输出为4;并且这里使用了 if name==”main“: (如果不使用这句话,输出效果是一样的)

如果在test1.py文件中定义了一个函数a,想要在test2.py文件中调用a函数,这时候就需要if name==”main“:了。
举例说明:
test1.py

def a(x):    return x*2if __name__=="__main__":    print a(2)

test2.py

from test1 import *print a(3) #6

这里在test2中调用test1中自定义函数a,输出结果为6。
这里如果在test1中没有使用if name==”main“:这句话,则输出结果中会多出一次计算结果,原因是如果没有if name==”main“:则test2中会对该文件中的可执行语句都会执行(相当于没有main函数)。如果有if name==”main“:的话,相当于判断一下test1文件是否是单独执行的test1文件还是在其他文件中调用的自定义函数,这里的例子就是第二种情况了,所以在if name==”main“:下面的语句就不会执行。

另外,这里也讲讲如何在另一个文件中调用当前文件中的自定义函数?

例如,需要在python文件a中调用同级目录test文件夹中的b文件中的c()自定义函数,如何在a文件中实现?

from test.b import *     #从文件路径为test.b的文件中导入所有的函数c( ) #调用b文件中的c函数
1 0