混合用法模式:__name__和__main__:
可以把文件作为模块导入,并以独立式程序的形式运行,每个模块都有个名为__name__的内置属性,Python会自动设置该属性
如果文件是以顶层模块程序文件执行,在启动时,__name__就会设置为字符串""__main__"
如果文件被导入,__name__就会改设成客户端所了解的模块名
__name__用于单元测试:
可以在__name__检查区域封装了自我测试的调用,使其在文件作为顶层脚本执行时才会启动,而导入时则不会
被导入时
#test.py
error='fasdfsa'
if __name__=='__main__':
print 'test'
def printer(data):
print(data)
#_x__all__.py
import test
print(test.error)
test.printer('2347892hfhsdakjfhkjsdahfkjshf')
if __name__=='__main__':
print __name__
作为顶层文件运行时: