在学习flask时,遇到__name__ == '__main__',开始不明白,查了些资料,想整理一下。
1 问题
if __name__ == '__main__' :
app.run(debug = True)
2 实例
通常情况下,直接调用函数。
def mult(x, y):
return x * y
print 'mult(30, 20) ==', mult(30, 20)
结果:
mult(30, 20) == 600
将上面的代码保存在mymath.py,并在同一文件夹里新建一个文件test.py
import mymath
print 'mult(34, 25) ==', mymath.mult(34, 25)
结果:
mult(30, 20) == 600
mult(34, 25) == 850
上面会得到两个结果,一个是由mypath.py产生的,另一个由test.py中调用mult()函数产生。如果只想得到后面一个结果该怎么办?
先看下面的例子。
#mymath.py
def mult(x, y):
return x * y
if __name__ == '__main__':
print 'mult(30 , 20) ==', mult(30 ,20)
运行mymath.py,得到结果:
mult(30, 20) == 600
#test.py
import mymath
print 'mult(34, 25) ==', mymath.mult(34, 25)
运行test.py,得到结果:
mult(34, 25) == 850
发现是不是不同了。加入了__name__ == '__main__'之后,两者可以独立输出。
3 分析
__main__在这里代表mymath.py自身;__name__代表模板(类),在此处指mymath.py这个模板。