如何理解python中的if __name__=='main'的作用

网友投稿 689 2022-08-26


如何理解python中的if __name__=='main'的作用

一. 一个浅显易懂的比喻

我们在学习python编程时,不可避免的会遇到if __name__=='main'这样的语句,它到底有什么作用呢?

《如何简单地理解Python中的if __name__ == '__main__'》里举了一个通俗易懂的例子:

'''

通俗的理解​​__name__ == '__main__'​​​:假如你叫小明.py,在朋友眼中,你是小明​​(__name__ == '小明')​​​;在你自己眼中,你是你自己​​(__name__ == '__main__')​​。

​​if __name__ == '__main__'​​​的意思是:当.py文件被直接运行时,​​if __name__ == '__main__'​​​之下的代码块将被运行;当.py文件以模块形式被导入时,​​if __name__ == '__main__'​​之下的代码块不被运行。

'''

二. 用代码来验证

在桌面上,新建一个test.py文件,写入如下代码:

print('我喜欢学python')def func(): print('python是一门优秀的语言')print(__name__)if __name__=='__main__': func() print('学习python让我的世界丰富多彩!')

运行代码,输出结果为

在桌面再建一个名为test_import.py的文件,只输入以下代码:

import test

输出结果为

和之前test.py的运行结果相比,只输出了"我喜欢学python", if __name__=='__main__'之后的语句没有输出,还有一个区别是print(__name__)的结果,前者是__main__,后者是test

每个python文件也就是一个模块,都包含了内置的变量__name__,对模块自身来讲,__name__就是'__main__',而当模块被import到其他模块时,这个模块的__name__就等于这个模块名test(不包含.py)。也就是说,当模块被导入时,模块的if __name__=='__main__':代码块将不会被执行


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python中的print()、str()和repr()的区别
下一篇:Mybatis关联查询结果集对象嵌套的具体使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~