![]() |
2.6 Python模块 |
函数是可以实现一项或多项功能的一段程序,模块便是对函数功能的扩展,是可以实现一项或多项功能的程序块。其实,函数是一段程序,模块是一项程序块,函数和模块都是用来实现功能的,但是模块的作用范围比函数要广,在模块里可以包含多个函数。
在 Python 的一段程序中要使用某个模块,就必须先导入指定的模块,只有导入了某个模块,才能使用该模块。下面通过实例来讲解如何导入模块。
(1)通过import语句导入整个模块:
代码示例如下:
(2)通过 from-import 语句导入指定模块的部分属性或进行模糊导入,具体细节请参见2.6.3节:
代码示例如下:
Python自带一些模块,我们把这些模块叫作标准库模块。标准库模块是指一类模块,而不是特指某一种模块。在标准库模块中也有非常多的模块,有的与电子邮件相关,有的与操作系统相关,有的与系统功能相关,等等。我们把在标准库中与系统功能有关的这些模块叫作sys模块。下面通过实例来讲解sys模块的基本使用方法:
sys模块的常见函数列表如表2-3所示。
表2-3
若想在 Python 中导入一个模块,则可以使用 import,但是 import 导入了这个模块的全部功能,并没有指定具体模块的某个属性或方法。若不仅想导入一个模块,还想导入模块中对应的某个功能,则可以使用 from⋯import 语句。下面通过实例来了解 from⋯import语句的用法:
在 Python 中使用 from…import 语句时,只能一次导入一个模块的一个功能,若想一次性导入这个模块的所有功能,也就是导入所有属性与方法,则可以使用 from…import*语句。下面通过实例来了解from…import*语句的用法:
通过对比 import 与 from…import…这两种导入模块的方法,我们可以清楚地发现import…as…比from…import*更简洁、高效,因为from…import*看似简单,但需要用户牢记模块中的具体函数,本书也不推荐使用这种方法。
在 Python 函数中,如果一个函数调用其他函数完成一项功能,这个函数就叫作主函数;如果一个函数没有调用其他函数,这个函数就叫作非主函数。模块也是如此,如果一个模块是被直接使用的,没有被其他模块调用,这个模块就叫作主模块;如果一个模块被其他模块调用,这个模块就叫作非主模块。
在Python中有主模块与非主模块之分,那么如何区分主模块与非主模块呢?答案是:如果一个模块的__name__属性的值是__main__,那么这个模块是主模块,否则就是非主模块。其实我们可以将__name__看作一个变量,这个变量是系统给出的,其功能是判断一个模块是否是主模块。
首先,我们分别看看这个模块在不同场景下的__name__的值:
然后,看看__name__属性的常用情况:
Python在安装时就自带的模块叫作系统自带模块,这些模块不需要用户自己定义和编写。而有些模块刚好与这种模块不同,需要我们自己定义和编写,这些模块就叫作自定义模块。下面通过实例进行讲解:
将这段语句保存在myadd.py文件中,并保存在“….\Anaconda\Lib”目录下就成为模块。注意:“….”为我们安装时的Anaconda的地址。
下面调用自定义模块myadd:
在 Python 中有很多模块,有时我们会忘记一个模块有哪些功能,这时可以通过 dir()函数来查看指定模块的功能列表。下面通过实例进行讲解:
注意:鉴于Pandas的方法太多,这里并没有全部列出来。
在 Python 中,通过 dir()函数不仅能查看模块的功能列表,还能查看任意指定对象的功能列表。如下所示为定义a为一个列表,并通过dir(a)查看a的功能列表: