在代码中经常可见__name__和__main__
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if name == ‘main’: 的作用就是控制这两种情况执行代码的过程
name:
- 如果是放在Modules模块中,就表示是模块的名字;
- 如果是放在Classs类中,就表示类的名字;
main:
模块第一次被导出(import)后,系统会自动为其创建一个域名空间(namespace);
(模块,都是有自己的名字的)此处的脚本的主模块的名字,始终都叫做__main__,即指的是本模块
由上可知
在 if name == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。
此处__name__即本模块的名字
__main__即本模块的名字,因此正确可运行