第9章 模块与包-【千锋教育】Python快乐编程基础入门
2023-03-21
|
41页
|
145人阅读
|
2人下载
教辅
内容正文:
第9章 模块与包
包的概念
包的发布
包的安装
小案例
模块的概念
模块的导入
内置标准模块
自定义模块
1
模块的概念
模块的导入
内置标准模块
自定义模块
包的概念
包的发布
包的安装
小案例
目 录
CATALOUGUE
初心至善 匠心育人
01
02
04
05
03
06
07
08
2
理解模块与包的概念
掌握包的发布与安装
掌握模块的导入
掌握自定义模块
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
9.1 模块的概念
模块是一个保存了Python代码的文件,其中可以包含变量、函数或类的定义,也可以包含其他各种Python语句。使用模块有以下3方面的优势。
(1)模块提高了代码的可维护性。在程序开发过程中,随着程序功能的增多,在一个文件中的代码会越来越长,从而造成程序不易维护,此时可以把相关功能的代码分配到一个模块里,从而使代码更易懂、更易维护。
(2)模块提高了代码的可重用性。在应用程序开发中,经常需要处理时间,此时不必在每个程序中写入时间的处理函数,只需导入time模块即可。
(3)模块避免了函数名和变量名冲突。由于相同名字的函数和变量可以分别存在于不同模块中,在编写模块时,不必考虑名字会与其他模块冲突(此处不考虑导包情况)。
初心至善 匠心育人
9.1 模块的概念
在Python中,模块可以分为3类,具体如下所示:
内置标准模块(标准库)——Python自带的模块,如sys、os等。
自定义模块——用户为了实现某个功能自己编写的模块。
第三方模块——其他人已经编写好的模块。
一个Python程序可由若干模块构成,一个模块中可以使用其他模块的变量、函数和类等,如图所示。
在图中, a.py是一个顶层模块(又称主模块),其中使用了自定义模块b.py和内置标准模块,b.py也使用了内置标准模块。
初心至善 匠心育人
9.1 模块的概念
接下来简单演示模块的使用,如例所示。
在例中,程序使用math模板中的sqrt()函数可以很方便地计算出9的算术平方根。
初心至善 匠心育人
9.2 模块的导入
模块需要先导入,然后才能使用其中的变量或函数。在Python中使用关键字import导入某个模块,其语法格式如下:
其中,import用于导入整个模块,可用as为导入的模块指定一个别名。使用import导入模块后,模块中的对象均以“模块名(别名).对象名称”的方式来引用。
接下来演示import关键字导入模块,如例所示。
在例中,第1行为math模块指定别名m,第2行一次导入多个模块。
初心至善 匠心育人
9.2 模块的导入
此外,若只想导入模块中的某个对象,则可以使用from导入模块中的指定对象,其语法格式如下:
注意使用from导入的对象可以直接使用,不需要使用模块名作为限定符,如例所示。
在例中,第1行通过from关键字从math模块中导入sqrt()函数,然后再通过as关键字为sqrt()函数指定别名st。
import与from导入模块各有特点,使用import导入模块时比较简单,使用from导入模块时需列出想要导入的对象名,但无论哪种导入方式,模块只能一次导入。另外,注意模块整体导入的开销是比较大的。
初心至善 匠心育人
9.3
内置标准模块
初心至善 匠心育人
9.3 内置标准模块
Python标准库中包括了许多模块,从Python语言自身特定的类型到一些只用于少数程序的模块,本节主要介绍基础阶段常见的内置标准模块。
初心至善 匠心育人
9.3 内置标准模块
9.3.1 sys模块
sys模块是Python标准库中最常用的模块之一。通过它可以获取命令行参数,从而实现从程序外部向程序内部传递参数的功能,也可以获取程序路径和当前系统平台等信息。
接下来演示通过sys模块获取命令行参数,如例所示。
在例中,注意执行程序时,需要开启终端模式(在PyCharm中,选择View->Tool Windows->View->Terminal选项即可)。从程序运行结果可以看出,在命令行中输入了3个参数,分别为'9-4.py'、 'xiaoqian'、'666'。
初心至善 匠心育人
9.3 内置标准模块
9.3.1 sys模块
在导入模块时,用户省略了模块文件的路径和扩展名,但Python解释器可以找到对应的文件,这是因为Python解释器会按特定的路径来搜索模块文件,用户可以通过sys.path获取搜索模块的路径,如例所示。
在例中,第2行通过print()函数打印出搜索模块路径。sys.path通常由4部分组成,具体如下所示:
程序的当前目录(可用os模块中的getcwd()函数查看当前目录名称)。
操作系统的环境变量PYTHONPATH中包含的目录(如果存在)。
Pytho
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。