更新时间:2023-05-17 来源:黑马程序员 浏览量:
随着Python程序复杂度的提高,代码量会同步增长,这时若还是在一个文件中编写代码,代码的维护就会越来越困难。为了保证代码的可维护性,开发人员通常将一些功能性代码放在其他文件中,这种用于存放功能性代码的文件就是模块。
作为一种强大且便捷的编程语言,Python 自然支持以模块的形式组织代码。Python内置了一些标准模块,Python的使用者也贡献了丰富且强大的第三方模块;标准模块可以直接导入并使用,第三方模块则需先行安装。本节先介绍如何安装模块,再介绍如何导入和使用模块。
利用Python 内置的pip工具(安装Python 3.8时会自动安装该工具)可以非常方便地安装Python第三方模块,该工具可在命令行中使用,语法格式如下:
pip install 模块名
例如安装用于开发游戏的pygame模块,具体命令如下:
Pip Instal1 pygame
需要注意的是,pip是在线工具,它需要联网获取模块资源, 若网络未连接或网络不佳,pip将无法顺利安装第三方模块。
使用模块中定义的内容之前需先将模块导入到当前程序。Python使用import关键字导入模块,其语法格式如下:
import模块1,模块2,…例如在程序中导入pygame模块,具体代码如下:
inport pygame
模块导入后,可通过点字符“.”调用模块中的内容,其语法格式如下:
模块,函数 模块,变量
例如使用import 语句导入pygame模块后可调用其中的init()函数,示例代码如下:
inport init()
便用点字符可避免多个模块中存在同名函数时代码产生歧义,但若不存在同名函数,可使用“from模块名import”直接将模块的指定内容导入程序,并在程序中直接使用模块中的内容。例如将pygame模块的imit()函数导入程序,并直接使用该函数,具体代码如下:
from pygane import init init()
使用from…import…语句也可将指定模块的全部内容导入当前程序,此时可使用“*”指代模块中的全部内容。例如将pygame模块的全部内容导人,具体代码如下:
from pygame inport*
需要注意的是,虽然from…import*可以方便地导入一个模块中的所有内容,但考虑到代码的可维护性,此种方式不应被过多使用。
模块(module)、包(package)和库(lib)是Python 组织代码的3种方式。模块是最基础的代码组织方式,每个包含有组织的代码片段的.py文件都是一个模块,文件名就是模块名。
包以类似目录的结构组织模块文件或子包,简单来说,一个包含_init_.py文件的目录就是一个包。包中必有_init_py文件,并可以有多个模块或子包。库是一个抽象概念,它是指具有相关功能的模块的集合。