
def fun1():
print('hello')
print(__name__)
if __name__ == '__main__':
fun1()执行app.py时,输出为:
__main__
hello
解释:当执行当前文件app.py时,__name__是Python内部创建的一个变量__name__ = "__main__",此时因为是直接执行当前文件,所以if判断为true,则执行fun1()并输出hello
from app import fun1
def fun2():
print('测试fun2')
fun1()
print(__name__)
if __name__ == '__main__':
fun2()直接执行import_app.py时,输出为:
app
__main__
测试fun2
hello
解释:
(1)当导入app.py时,加载app.py时__name__ = "app",if判断结果为false,所以导入app.py时if __name__ =="__main__"后面的fun1()函数不会被执行;
(2)因为当前文件执行的是import_app.py,此时当前文件的__name__ ="__main__",if判断结果为true,所以在当前文件中
if __name__ =="__main__"后面的fun2()函数会被执行;
总结:
1、当运行当前脚本时,Python内部创建的一个变量__name__ = "__main__"
2、如果当前的脚本,是被别人导入执行的,Python内部创建的一个变量__name__ = "app" (app为被导入模块文件名)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。