课程名称:全面系统Python3.8入门+进阶(程序员必备第二语言)
课程章节:7-11 模块内置变量 7-12 入口文件和普通模块内置变量的区别
主讲老师:7七月
课程内容:
今天学习的内容包括:
模块内置变量
入口文件和普通模块内置变量的区别
课程收获:
7-11 模块内置变量
我们除了可以在模块内部定义一些自己的变量,模块还有一些变量是已经给我们定义好的。可以使用dir,他是用来现实当前模块下所有变量。
如上所示,使用dir后。python打印除了该模块下所有的变量。
可以看到,打印内容里有双下线展示的变量,这些变量就是python内部已经定义好的变量。他们和我们自己定义的变量没有区别。
7-12 入口文件和普通模块内置变量的区别
同样的代码可以看到才C9里是有package的,但是才c15里没有。这是一个差异,还有一个是那么这里。c15这里打印了__main__,他并不是c15本身的模块名字。
c9的file是当做模块导入执行的,他的文件路径是完整的路径,但在c15这里的时候他却只有c15.py没有路径了。
主要原因在于c15把他当做一个应用程序的入口,用python命令来执行的。但是对于c9来说他是一个正常的普通的python模块。
如果一个.py文件被python当做应用程序的入口文件,那么他的变量name所打印出来的值,就不再是他本身模块名了,而是会被强制更改成__main__。这是入口文件最典型的特点。
其次,第二个特点package上,如果说一个.py文件被当做是入口文件,那么他的顶级是不会再有包的。
从以上图片可以看到,file的取值和我们执行python命令所在目录有关系的。