6-1、认识python模块
1、什么是模块?
函数是可以实现一项或多项功能的一段程序;
模块是函数功能的扩展,模块是可以实现一项或多项功能的程序块;
也就是说,函数和模块都是用来实现功能的,但模块的范围比函数要广,在模块里可以重用多个函数;
2、怎么导入模块?
python中一段程序要使用某个模块时,不能直接使用模块里面的功能;
在使用模块之前,必须先导入指定模块;
3、sys模块:
python中有一些模块不需要我们自己去定义,python官方提供了自带的模块;
这些模块伴随着python的安装而产生,我们把这些模块叫做标准库模块;
标准库中有很多模块,如跟电子邮件有关的的,跟操作系统有关的等;
我们把标准库中与系统功能有关的这些模块称之为sys模块;
比如:
查看版本信息;
查看当前运行的文件的目录地址;
查看window操作系统的版本信息;
查看已经导入的模块关键字;
6-2、字节编译
1、什么是python的.pyc文件?
由于计算机只认识二进制的机器语言,所以在执行python模块的时候有两种执行方式;
一种是先将模块里面的内容编译成二进制语言,然后执行这些二进制语言程序;
另一种是直接执行这些对应模块的二进制语言程序;
而把模块编译成二进制语言程序的这个过程叫做字节编译,这个过程将产生一个与编译模块相对应的.pyc文件;
也就是说,.pyc文件就是经过编译后的模块对应的二进制文件;
2、字节编译与编译的区别:
把模块编译成二进制语言程序的这个过程叫做字节编译;
而python是一种解释型语言,而不是一种编译型语言;
很多人认为,python中出现字节编译,那么python就应该是一种编译型语言;这种观点其实是不正确的;
python中虽然出现了编译这个过程,但是python中编译的过程是在python的解释器中发生的;
换句话来说,其实每种程序想要计算机执行,都只能变成二进制的形式;
编译型语言是指在软件中就是一个独立的编译模块去将程序编译,
而python中的字节编译这部分功能由解释器完成的,所以python仍然是解释型语言。
3、.pyc文件的使用:
.pyc文件就是经过编译后的模块对应的二进制文件;
.pyc文件最大的一个作用就是加快了模块运行的速度;
除此之外,他还可以做反编译等高级功能;
查看.pyc文件需要用一个二进制文件阅读器;
6-3、from...import详解
1、学会使用from...import
python中导入一个模块的方法可以使用import,但是import只是导入了这个模块,而并没有导入我们模块的某个属性或方法;
而我们不仅导入一个模块,还有导入模块中对应的一个功能,我们可以使用from...import语句:
但from...import一次只能导入模块里面的一个功能,要一次导入某个模块里面的所有功能,可以使用from...import *
6-4、认识__name__属性
1、认识主模块
在python中,如果一个函数调用其它函数完成一项功能,我们称这个函数为主函数;
如果一个函数没有调用其它函数,这个函数叫做非主函数;
模块也类似,如果一个模块是被直接使用的,而没有被别人调用,那么称这个模块为主模块;
如果一个模块被别人调用,我们称这种模块为非主模块;
2、认识_name_属性
在python中有主模块与非主模块之分,那么如何区分主模块与非主模块呢?
是这样的,如果一个模块的__name__属性的值是__main__,那么就说明这个模块是主模块,反之亦然;
其实我们可以把__name__看作一个变量,这个变量是系统给出的,这个变量的功能是判断一个模块是否是主模块;
6-5、自定义模块
1、自定义模块的创建与使用:
方式一:
在Lib目录下任意新建一个文件,以.py结尾,这个就成了一个模块
方式二:
只要将我们写的python程序保存到Lib目录下,这个程序就是一个模块,模块的功能由自己决定;
2、怎样将参数传递到模块里面?
首先要保证模块本身没有出现逻辑和语法上面的错误;
而怎样保证模块没有出现逻辑和语法上面的错误呢?
方法1:是通过对模块中的变量进行初始化;
方法2:在模块中先声明好变量的类型;
6-6、dir函数
python中有非常多的模块,但是有的时候我们会忘记一个模块有哪些功能,
这个时候,我们可以使用dir()函数来查看一下指定模块的功能列表。
比如:
我们想要看sys模块中有哪些功能,那我们就先导入sys这个模块,然后使用dir(sys)就可以查看sys模块的所有功能和方法:
如果我们想继续查看其中的__doc__方法的说明,我们可以继续使用sys.__doc__
python中的dir()函数不仅能查看模块的功能列表,还能查看任意指定对象的功能列表:
如:
定义一个列表d=[],然后使用dir(d)查看该列表里面的功能: