注意
if __name__ == '__main__'
跟java不同,下面的代码块并不是在 main()函数中,所以其中的变量也不是函数的隐私变量,而是全局变量。
今天用flask的时候有个小插曲,先上代码示例:
myapp=flask.Flask('__main__')
class A():
def pt(self):
return '哈哈'
@myapp.route('/dmo',methods=['POST'])
def rsp():
return a.pt()
if __name__=='__main__':
a=A()
myapp.run(host='0.0.0.0')
上述代码是可行的,因为a是在全局下的变量,是可以被rsp函数访问的
但是如果改成如下代码就不行了
myapp=flask.Flask('__main__')
class A():
def pt(self):
return '哈哈'
def funt():
a=A()
@myapp.route('/dmo',methods=['POST'])
def rsp():
return a.pt()
if __name__=='__main__':
funt()
myapp.run(host='0.0.0.0')
因为a是在函数funt的命名空间下,不可被rsp访问