进阶第三课 Python模块简介
一、前面我们说过,Python自从出世以来,就是免费、开放的。如今造就了数目庞大的模块:有些模块在安装Python时也一并安装,有些模块需要另行安装。那么问题来了,模块是什么?
对于Python而言,模块是若干功能的集合。
一个模块有自己的属性,就像一个人有自己的姓名、身高、体重、性别。。。
一个模块也有自己的方法。所谓方法,就是这个模块能做的事情。举个栗子-_-!!
>>>import time >>>a=time.time() >>>print(a)
分析一下:
1)既然是模块,就只有在导入(有的模块需要自行安装,还涉及包依赖,以后会讲到)。格式是:import 模块名
上面的就是导入了time(日期和时间模块)。
2)然后新建了一个变量a,并赋值。赋的是什么值呢?time.time,第一个time是模块名,中间用点号隔开,后面的time是这个模块中的方法名。
3)打印a
来一起看下打印结果
>>> import time >>> a=time.time() >>> print(a) 1522146472.0563416
这里time.time()返回了一个数值,这个数值的单位是“秒”。这里以1970年1月1日零时为起点,到当前时间为止一共有多少秒。
另外介绍2个常用的导入模块的方法,与上述介绍的稍有不同:
1、import module as shortname
可以给导入模块指定一个简写名,看示例:
>>> import time as t >>> t.time() 1523328759.498963
给导入的time模块指定了一个名称t,使用时t就是代表模块名time
2、from module import class
2.1 只导入一个模块中的一个或几个类(也就是函数),该模块里面的其他未导入类无法使用,还能避免代码冲突(也就是你定义的变量名可以是未导入类的名称)
2.2 与import module最大的不同,在于这样导入时,无需书写模块名。
>>> from time import time >>> time() 1523328986.062922
>>> import time >>> time.time() 1523329029.7764225
3、from module import *
这样一来,既可以一次导入模块中所有的类,还可以在使用中不需书写模块名。唯一的问题是由于没有显性写出类的名称,容易引起编码冲突。
>>> from time import * >>> time() 1523329194.95287
二、如果想知道一个模块有哪些属性、哪些方法,可以先import导入,然后使用dir()这个命令。
>>> import time >>> dir(time) ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
第三行中,‘__doc__'这类格式的是这个模块的属性,‘clock‘这类格式的是这个模块的方法。
三、如果想看这个模块的介绍,可以使用help()
help(time)
四、除了time这个内置模块,常用的内置模块(也称“标准库”)还有很多:os、re、math、copy、sys、string、random、code。。。
需要自己安装的模块(也成“第三方库”)就更多了,常用的比如numpy、pandas、scrapy。。。
这些模块都有自己的特长,今后我们会在示例中一边使用一边讲解。