import 模块名表示将这个模块名中加载到当前文件中来,本质上就是将这个模块名中的所有代码加载到当前文件中,相当于C语言中的include,而模块名本质上就是一个.py文件,因此可以使用 from 模块名 import 方法,属性,类 这样的方式来加载模块中的方法属性和类。
在.py文件中,有时候出现 if __name__ == __main__,技巧如下:
首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行:
test.py
def HaveFun():
if __name__ == '__main__':
print('I am in my domain,my name is %s' % __name__)
else:
print('Someone else calls me!,my name is %s' % __name__)
HaveFun()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
运行test.py结果:
I am in my domain,my name is __main__
- 1
然后继续创建一个main.py的文件,程序如下:
main.py
import test
test.HaveFun()
- 1
- 2
- 3
- 4
- 5
执行main.py文件,结果如下:
Someone else calls me!,my name is test
Someone else calls me!,my name is test
- 1
- 2
这里打印了两次,第一次实在main.py在进行import test的时候,进行的打印,第二次才是test.HaveFun()中执行的打印,可以发现,这里的 __name__
名称已经发成了变化,从之前的main变成了模块名称test。
总结:
1、__name__
这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__
的名称就是__main__
如果不是,则为这个模块的名称。
2、__main__
一般作为函数的入口,类似于C语言的main函数,尤其在大型工程中,常常有if __name__ == "__main__":
来表明整个工程开始运行的入口。