![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
第11章 Python模块和包
文章平均质量分 67
python模块和包
愿与你共信仰
这个作者很懒,什么都没留下…
展开
-
11.15 Python第三方库(模块)下载和安装(使用pip命令)
进行 Python 程序开发时,除了使用 Python 内置的标准模块以及我们自定义的模块之外,还有很多第三方模块可以使用,这些第三方模块可以借助 Python官方提供的查找包页面(https://pypi.org/)找到。使用第三方模块之前,需要先下载并安装该模块,然后就能像使用标准模块和自定义模块那样导入并使用了。因此,本节主要讲解如何下载并安装第三方模块。下载和安装第三方模块,可以使用 Python 提供的 pip 命令实现。pip 命令的语法格式如下:pip install|uninstall原创 2021-02-09 18:06:31 · 6045 阅读 · 1 评论 -
11.14 Python __file__属性:查看模块的源文件路径
前面章节提到,当指定模块(或包)没有说明文档时,仅通过 help() 函数或者 __doc__ 属性,无法有效帮助我们理解该模块(包)的具体功能。在这种情况下,我们可以通过 __file__ 属性查找该模块(或包)文件所在的具体存储位置,直接查看其源代码。仍以前面章节创建的 my_package 包为例,下面代码尝试使用 __file__ 属性获取该包的存储路径:import my_packageprint(my_package.__file__)程序输出结果为:C:\Users\shaobi原创 2021-02-09 17:58:22 · 259 阅读 · 0 评论 -
11.13 Python __doc__属性:查看文档
在使用 dir() 函数和 __all__变量的基础上,虽然我们能知晓指定模块(或包)中所有可用的成员(变量、函数和类),比如:import stringprint(string.__all__)程序执行结果为:['ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace',原创 2021-02-09 17:55:12 · 350 阅读 · 0 评论 -
11.1 什么是模块,Python模块化编程
Python提供了强大的模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块。通过这些强大的模块可以极大地提高开发者的开发效率。那么,模块到底指的是什么呢?模块,英文为 Modules,至于模块到底是什么,可以用一句话总结:模块就是 Python 程序。换句话说,任何 Python 程序都可以作为模块,包括在前面章节中写的所有 Python 程序,都可以作为模块。模块可以比作一盒积木,通过它可以拼出多种主题的玩具,这与前原创 2021-02-08 19:10:11 · 486 阅读 · 0 评论 -
11.12 Python查看模块(变量、函数、类)方法
前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(变量、函数或者类)呢?查看已导入模块(包)中包含的成员,本节给大家介绍 2 种方法。查看模块成员:dir()函数事实上,在前面章节的学习中,曾多次使用 dir() 函数。通过 dir() 函数,我们可以查看某指定模块包含的全部成员(包括变量、函数和类)。注意这里所指的全部成员,不仅包含可供我们调用的模块成员,还包含所有名称以双下划线“__”开头原创 2021-02-09 17:41:52 · 253 阅读 · 0 评论 -
11.11 Python __init__.py作用详解
前面章节中,已经对包的创建和导入进行了详细讲解,并提供了大量的实例,这些实例虽然可以正常运行,但存在一个通病,即为了调用包内模块的成员(变量、函数或者类),代码中包含了诸多的 import 导入语句,非常繁琐。要解决这个问题,就需要搞明白包内 __init__.py 文件的作用和用法。我们知道,导入包就等同于导入该包中的 __init__.py 文件,因此完全可以在 __init__.py 文件中直接编写实现模块功能的变量、函数和类,但实际上并推荐大家这样做,因为包的主要作用是包含多个模块。因此 __i原创 2021-02-09 17:40:53 · 379 阅读 · 1 评论 -
11.10 Python创建包,导入包(入门必读)
《Python包》一节中已经提到,包其实就是文件夹,更确切的说,是一个包含“ __init__.py”文件的文件夹。因此,如果我们想手动创建一个包,只需进行以下 2 步操作:新建一个文件夹,文件夹的名称就是新建包的包名;在该文件夹中,创建一个 __init__.py 文件(前后各有 2 个下划线‘_’),该文件中可以不编写任何代码。当然,也可以编写一些 Python初始化代码,则当有其它程序文件导入包时,会自动执行该文件中的代码(本节后续会有实例)。例如,现在我们创建一个非常简单的包,该包的名称原创 2021-02-08 21:09:34 · 1099 阅读 · 0 评论 -
11.9 Python包(存放多个模块的文件夹)
实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理。而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢?因此,Python提出了包(Package)的概念。什么是包呢?简单理解,包就是文件夹,只不过在该文件夹下必须存在一个名为“ __init__.py” 的文件。注意,这是 Python 2.x 的规定,而在 Python 3.x 中, __init__.py 对包来说,并不是必须的。每个包的目录下都必须建原创 2021-02-08 20:58:04 · 309 阅读 · 0 评论 -
11.8 Python __all__变量用法
事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。以前面章节中创建的 demo.py 模块文件和 test.py 文件为例(它们位于同一目录),各自包含的内容如下所示:#demo.pydef say(): print("人生苦短,我学Python!")def CLanguage(): print("C语言中文网:ht原创 2021-02-08 20:54:15 · 288 阅读 · 0 评论 -
11.7 Python导入模块的本质
为了帮助大家更好地理解导入模块,下面定义一个新的模块,该模块比较简单,所以不再为之编写测试代码。该模块代码如下(编写在 fk_module.py 文件中):'一个简单的测试模块: fk_module'print("this is fk_module")name = 'fkit'def hello(): print("Hello, Python")接下来,在相同的路径下定义如下程序来使用该模块:import fk_moduleprint("================")# 打印原创 2021-02-08 20:44:37 · 1375 阅读 · 0 评论 -
11.6 Python导入模块的3种方式(超级详细)
很多初学者经常遇到这样的问题,即自定义 Python 模板后,在其它文件中用 import(或 from…import) 语句引入该文件时,Python 解释器同时如下错误:ModuleNotFoundError: No module named ‘模块名’意思是 Python 找不到这个模块名,这是什么原因导致的呢?要想解决这个问题,读者要先搞清楚 Python 解释器查找模块文件的过程。通常情况下,当使用 import 语句导入模块后,Python 会按照以下顺序查找指定的模块文件:在当前目录原创 2021-02-08 20:36:02 · 1171 阅读 · 0 评论 -
11.5 Python __name__==‘__main__‘作用详解
前面章节已经对模块及其用法做了详解的介绍,相信有很多读者已经开始去尝试阅读别人的代码了(通常阅读比自己牛的人写的代码,会让自己的技术水平飞速提高)。不过,在阅读别人写的自定义模块时,经常会看到有如下这行判断语句:if __name__ == '__main__':这行代码的作用是什么呢?本节就详解讲解以下它的作用。一般情况下,当我们写完自定义的模块之后,都会写一个测试代码,检验一些模块中各个功能是否能够成功运行。例如,创建一个 candf.py 文件,并编写如下代码:'''摄氏度和华氏度的相互转原创 2021-02-08 20:13:50 · 312 阅读 · 0 评论 -
11.4 Python __import__()函数引入模块名
前面讲过,其实模块就是一个代码文件,因此要求其文件名要符合操作系统的命名规则。这可能会遇到一个问题,即操作系统中允许文件名中包含空格,也就是说,模块文件可以起名为类似“a b”的形式。但这和 Python 语法相矛盾,换句话说,Python 是以空格来隔离一行语句中的不同元素的,如果模块名中出现空格,就无法再使用 import 引入。例如,我们自定义一个模块,并起名为 “demo text.py”,该模块中只包含如下输出语句:print("C语言中文网")如果在其他文件中,仍以 import 语句原创 2021-02-08 20:03:35 · 769 阅读 · 0 评论 -
11.3 Python自定义模块
到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢?前面章节中讲过,Python 模块就是 Python 程序,换句话说,只要是 Python 程序,都可以作为模块导入。例如,下面定义了一个简单的模块(编写在 demo.py 文件中):name = "Python教程"add = "http://www.baidu.com/python"print(name,add)def say(): print("人生苦短原创 2021-02-08 19:42:23 · 142 阅读 · 0 评论 -
11.2 Python导入模块,Python import用法
使用 Python进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库。比如说,在前面章节中,我们使用了一些数学函数,例如余弦函数 cos()、绝对值函数 fabs() 等,它们位于 Python 标准库中的 math(或 cmath)模块中,只需要将此模块导入到当前程序,就可以直接拿来用。前面章节中,已经看到使用 import 导入模块的语法,但实际上 import 还有更多详细的用法,主要有以下两种:import 模块名1 [as 别名1], 模块名2原创 2021-02-08 19:26:07 · 185 阅读 · 0 评论