我们常常在他人的代码中看到一行if__name__ == “main”那么这一行代码,这有什么用途呢?
在python中,我们常常为了避免程序过于繁琐,而将许多的代码弄成一个个模块,在一个文件中导入模块得以实现所要的功能,同时美观。而在导入的时候,若模块中有为了测试目的而调用了函数,则在主py文件中导入模块时也会再一次调用,导致了二次调用。举个例子:
在第一个py文件show中:
def show(a,b):
print("a+b={}".format(a+b))
show(2,3)
在另一个py文件中:
import show as s
s.show(4,6)
#会打印两次 a+b=5, a+b=10
所以为了避免重复,又方便原模块进行测试,在模块的测试代码前可以加上if__name__ == main,让 计算机判断当前运行环境是否在主程序中,若在另一个py文件中,则name会返回另一个py文件的名。
修改后的第一个文件:
def show(a,b):
print("a+b={}".format(a+b))
if __name__ == '__main__':
show(2,3)