python基础8之自定义模块、if __name__==__main__:解释
<table style="height: 30px; width: 1132px; background-color: #afeeee; ; width: 1132px;" border="0"> |
结果分析:当我们运行的程序的时候,__name__这个内置变量值就是__main__。
下面我们来看下导入模块时候__name__变量值:
test.py代码:
<span style="color: #0000ff;">print
(<span style="color: #800000;">"<span style="color: #800000;">this is before if name:%s<span style="color: #800000;">"%<span style="color: #800080;">name<span style="color: #000000;">)<span style="color: #0000ff;">if <span style="color: #800080;">name==<span style="color: #800000;">'<span style="color: #800000;">main<span style="color: #800000;">'<span style="color: #000000;">:
<span style="color: #0000ff;">print(<span style="color: #800000;">"<span style="color: #800000;">this is after if name:%s<span style="color: #800000;">"%<span style="color: #800080;">name)
导入test模块并执行
可以看到,此时变量__name__值为模块名,并没有执行if中的语句,结果只有一条。
综上分析:
if __name__=='__main__'说白了就是判断__name__变量是不是等于__main__,当执行文件本身时候__name__变量等于main,此时判断成立并执行判断语句中的代码,当调用该模块的时候__name__并不等于__main__条件不成立,不执行判断下面的预计,可以认为为了调试模块,在模块导入的时候并不执行if下面的语句。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!