一个py文件有几种用途?
执行py文件与导入py文件的区别是什么?
1、被当成程序运行(执行文件)
2、被当做模块导入(导入文件)
执行文件在运行的时候会产生执行文件的名称空间,并将程序运行过程中产生的名字存放到执行文件的名称空间。
如果执行文件中有导入模块的操作,import foo(模块名)会将模块名存放到执行文件的名称空间,执行文件的模块名指向的就是被导入模块的名称空间。
导入模块会执行被导入的模块文件,产生被导入模块的名称空间,执行过程中产生的名字存放到被导入模块的名称空间,并存放到内存的内置模块中提供给执行文件使用,
当执行文件运行完毕后,导入模块的文件才会跟着结束。
区分py文件的两种用途
一个Python文件有两种用途,一种被当主程序/脚本执行,另一种被当模块导入,为了区别同一个文件的不同用途,
每个py文件都内置了__name__变量,该变量在py文件被当做脚本执行时赋值为“__main__”,在py文件被当做模块导入时赋值为模块名
可以在导入模块写内容测试一下:
if __name__ == '__main__':
print('我被执行了') 导入模块自己执行会打印
else:
print('我被导入了') 执行文件导入该模块会被打印