Python程序文件还可以作为模块导入并使用其中的对象,通过Python程序的__name__属性可以识别程序的使用方式,如果作为模块被导入,则其__name__属性的值被自动设置为模块名;如果作为程序直接运行,则其__name__属性值被自动设置为字符串'__main__'
假设程序demo.py中代码如下:
def main():
if__name__=='__main__':
print('我被直接使用')
elif__name__=='demo':
print('我被以模块的方式导入使用')
main()
运行结果为:我被直接使用
为什么只会输出第一句话呢?因为该程序中__name__的属性值被自动设置为字符串'__main__',故只会输入第一句话。
但是当程序demo.py被作为模块被导入时,其__name__的属性值就又成了'demo'。
假设程序demo1.py中代码如下:
import demo
运行结果为:我被以模块的方式导入使用
此时再去读本文的第一段,或许就会明白很多
另外,如果我们不在代码中写__name__的属性值时,该代码被作为模块导入到其他代码时,就会被全部执行。



