Python中if __name__ == '__main__'的使用

一个python文件的执行方法

  • 作为脚本语言执行

    实例代码:

直接执行

可以发现,直接执行test.py文件,可以print两行字符串。即if__name__ == ' _ _ main _ _ '语句之前和之后的代码都被执行。

  • import到其他的python脚本中被调用(模块重用)、执行。

    创建import_test.py文件,导入test.py文件

执行文件

只输出了第一行字符串,即if__name__ == ' _ _ main _ _ '之前的语句执行了。之后的没有执行。

if _ _ name _ _ == ' _ _ main _ _ '运行原理

每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 _ _ name _ _ ,当该模块被直接执行的时候, _ _ name _ _ 等于文件名(包含后缀 .py )

如果该模块 import 到其他模块中,则该模块的 _ _ name _ _ 等于模块名称(不包含后缀.py)。

实例再看

再给test.py脚本if _ _ name _ _ == ' _ _ main _ _'之前加入print( _ name _ )

重新执行文件test.py如下

在执行import_test.py如下

此时,test.py中的__name__变量值为 test,不满足 _ _ name _ _ ==" _ _ main _ _ " 的条件,因此,无法执行其后的代码。

参考博客:https://blog.csdn.net/q2605894893/article/details/82345814

posted @ 2019-04-07 20:04  苏黎世的从前  阅读(9515)  评论(0编辑  收藏  举报