1、原理
- 当if__name__ == '__ main__':为.py文件本身的语句的时候,则条件语句为真,可继续执行
- 当if__name__ == '__ main__':为.py文件作为模块被导入的时候,则条件语句为假,不可继续执行
if name == 'main':的运行原理
每个python模块(python文件,也就是此处的 test1.py 和 test2.py)都包含内置的变量 name;
当该模块被直接执行的时候,name 等于文件名(包含后缀 .py ,即test.py);
如果该模块 import 到其他模块中,则该模块的 name 等于模块名称(不包含后缀.py,即test)。
注:“main” 始终指当前执行模块的名称(包含后缀.py,即test.py)。进而当模块被直接执行时,name == 'main' 结果为真。
2、实验说明
pchuant@localhost:~$ cat test1.py test1.py文本内容
#!/usr/bin/python
#-*- coding:utf-8 -*-
print ("__name__的值:"+__name__)
if __name__ == '__main__':
print ("123")
pchuant@localhost:~$ cat test2.py test2.py文本内容
#!/usr/bin/python
import test1
pchuant@localhost:~$ ./test1.py 执行test1.py,打印123
__name__的值:__main__
123
pchuant@localhost:~$ ./test2.py 执行test2.py,不打印123
__name__的值:test1
网友评论