包和库

2.3 包和库

2.3.1 包的概念

包是在模块之上的概念,为了方便管理而将多个脚本文件(模块文件)进行打包。
包是一种用点式模块名构造 Python 模块命名空间的方法。例如,模块名 A.B 表示包 A 中名为 B 的子模块。正如模块可以区分不同模块之间的全局变量名称一样,点式模块名可以区分 NumPy 或 Pillow 等不同多模块包之间的模块名称。
包其实就是文件夹,包和文件夹的一大区别在于:包内存放了一个名为__pycache__的文件夹和__init__.py文件,该文件的内容就将是包的内容。然后是一些模块文件和子目录,如果子目录中也有__init__.py,那么它就是这个包的子包了。

2.3.2 包的导入

可以通过类似导入模块的方式导入包。导入包其实就是运行包下的__init__.py文件。如果包中没有__init__.py,则在导入包时不会有效果。但是会自动创建一个名为__pycache__ 的文件夹。
由于在导入包的时候会自动运行包内的__init__.py文件,所以一般会在该文件中写明导入包时要导入的包内其他py文件的语句。此时就可以用到相对导入了。
不建议在包内的__init__.py文件中写入其它非导入模块语句,尽量保证该文件的简洁性。
在__init__.py文件中,可以定义一个变量:__all__,一般这个变量等于该包内所有子模块名,这样在通过from 包 import *时则会查找__all__变量,并将该变量所指向的模块全部导入。

2.3.3 库的概念

库是具有相关功能模块(包)的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。一些大型的项目要实现比较多的功能,创建了许多的包和模块,那么就可以将所有的包放在一起,形成一个库。
其实库是个抽象的概念,只要某个模块或者一组模块,开发它们的目的就是给其它模块调用的,就可以称之为库。

2.3.4 标准库

Python 标准库
Python语言提供了功能丰富的标准库 。这些标准库把开发中常用的功能都做好了。我们可以直接使用它们。
这些标准库里面有一部分叫做内置类型(built-in types)和内置函数(built-in functions)。内置类型和内置函数无须使用import导入,可以直接使用。内置类型有:int、float、str、list、tuple等。
还有些标准库,需要使用import导入,才能使用。常见有 sys, os, time, datetime, json,random 等。
我们要结束Python程序,就可以使用sys库里面的exit函数。
我们要得到字符串形式的当前日期和时间,可以使用datetime库。
我们要获取随机数字,可以使用random库。
练习
1、利用dir、help探索上述标准库
2、使用不同的方式导入上述标准库

2.3.5 安装第三方库

同样的,和模块一样,来自网上其它人员编写的模块组合而成的库称之为第三方库,Python强大之处不仅仅是系统自带的标准库,还有来自网上由其它人员编写的大量实用的第三方库,下载安装之后可以极大的提高编程效率,让我们不必为了编写某些特定的功能去重复造轮子
要使用第三方库我们需要安装到本地。一般有以下几种方式安装第三方库:

2.3.5.1 通过pip安装

这也是最简单、最常用的一种方式。
1、运行cmd命令打开cmd窗口。
2、在cmd窗口中输入命令:pip install 第三方库名[==版本号]
3、按下回车后会自动到PYPI收集并安装第三方库。安装的路径为PythonLibsite-packages,这个文件夹就是Python专门用来下载并安装第三方库的。

2.3.5.2 复制文件夹安装

1、直接到已经安装好第三方库的电脑上,找到第三方库安装的文件路径,将库相关的文件夹(一般为库同名的文件夹以及库名-版本号.dist-info文件夹)复制
2、粘贴到另一台电脑相应的文件夹中。

注意:这种方法是电脑没有网络无法从网上下载的一种替代方式,不推荐使用。并且要注意两台电脑上安装的Python版本最好要一致。

2.3.5.3 到PYPI官网上下载安装文件安装

1、直接打开PYPI并搜索要安装的库名。
2、找到后点击库主页左上方的Download files。然后在右侧找到适合自己电脑系统的安装文件。注意,这个时候下载的安装文件是.whl格式的。
3、打开cmd窗口并将工作目录切换到刚才下载的whl安装文件所在的目录中
4、通过命令pip install xx.whl即可完成安装。

2.3.5.4 通过PyCharm安装

1、打开PyCharm,然后点击文件设置项目:项目名Python解释器,然后点击+
image

2、在弹出的对话空中,在上方输入要安装的库名:requests,找到之后点击左下方的安装软件包后。软件会自动下载并安装。
image

练习
通过不同的方式分别安装:pandas、requests、pygame、numpy库

2.3.6 导入说明

1、为了保证运行效率,每次解释器会话只导入一次模块。如果更改了模块内容,必须重启解释器;仅交互测试一个模块时,也可以使用 importlib.reload(),例如:
>>> import importlib
>>> importlib.reload(模块名)
2、可以使用as关键字将最后导入的内容和as后的名称进行绑定。例如:
import math as mt # 用mt代表导入后的math模块名
from math import sqrt as st # 用st代表导入的sqrt函数
模块名、变量、函数、类等都可以通过as和其它内容进行绑定。这么做的好处有几点:

  • 在不加入模块名的情况下可以区分同名对象
  • 可以简化输入,提高代码编写速度
    3、使用 from package import item 时,item 可以是包的子模块(或子包),也可以是包中定义的函数、类或变量等其他名称。import 语句首先测试包中是否定义了 item;如果未在包中定义,则假定 item 是模块,并尝试加载。如果找不到 item,则触发 ImportError 异常。相反,使用 import item.subitem.subsubitem 句法时,除最后一项外,每个 item 都必须是包;最后一项可以是模块或包,但不能是类、函数或变量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:包和库 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python词频分析

    Python词频分析 一、前言 在日常工作或者生活中,有时候会遇到词频分析的场景。如果是要进行词频分析,那么首先需要对句子进行分词,将句子中的单词进行切割并按照词性进行归类。在Python中有个第三方库叫jieba(结巴),可以对文章或者语句进行分词。不得不佩服这个库的作者,真是个取名鬼才:) 二、分词 2.1 安装库 jieba库github地址jieba…

    2023年4月2日
    00
  • Python代码块及输入输出

    3.7 Python代码块及输入输出 3.7.1 Python代码块 前面分别介绍了关键字、运算符,由运算符和操作数组成了表达式。而语句由关键字、标识符、表达式组成。而代码块由若干条语句组成。通常Python中的代码块是通过缩进来创建的。在很多语言中,都使用一个特殊的单词或字符,比如begin或{来标识代码块的起始位置,并使用另一个特殊的单词或字符,如end…

    Python开发 2023年4月2日
    00
  • Python表达式

    3.4 Python表达式 Python表达式是运算符和操作数进行有意义排列所得的组合。操作数可以是值、变量、标识符等。单独的一个值或一个变量也是一个表达式。表达式是Python程序中最常见的代码。表达式是一段可以被求值的代码。因为可以被求值,所以一般表达式可以写在赋值语句=的右边。表达式可以作为语句的组成部分。以下都是Python表达式: 5 + 3 3 …

    Python开发 2023年4月2日
    00
  • Python特性

    3.1 Python特性 Python是为可读性设计的,与英语有一些相似之处,并受到数学的影响。比如: Python使用新行来完成命令,而不像通常使用分号或括号的其他编程语言。 Python依赖缩进,使用空格来定义范围;例如循环、函数和类的范围。其他编程语言通常使用花括号或关键字来实现此目的。 Python中没有单个字符,单字符被认为是1个字符的字符串。 对…

    Python开发 2023年4月2日
    00
  • Python函数的参数

    5.3 函数参数 示例2中定义的函数虽然能够计算总分数,但是每次计算后的结果是固定的,为了增加函数的灵活性,我们希望在调用函数的时候可以传入一些数据,然后根据传入的数据进行计算。要满足这种需求,就需要在定义函数的时候定义参数。 5.3.1 形参和实参 在编程语言中,函数定义使用的是形参,调用时传入的是实参。形参(parameter),全称为形式参数,不是实际…

    Python开发 2023年4月2日
    00
  • 定义(创建)、调用函数及返回值

    5.2 定义(创建)、调用函数及返回值 5.2.1 定义(创建)函数 要调用一个函数,首先要定义它。在Python中使用关键字def来定义一个函数。函数通常由函数名、参数列表以及一系列语句组成的函数体构成的。函数定义的一般格式如下: def 函数名(参数列表): 函数体 例如: def sayhello(): print(‘hello’) 最简单的函数: d…

    Python开发 2023年4月2日
    00
  • 类方法和对象方法

    6.4 类方法和对象方法 方法的本质其实就是函数,在模块中定义就是函数,在类中定义就是类的方法。方法按照归属分类一般有3种:对象方法、类方法、静态方法。 6.4.1 对象方法 class Person: cls_attr = ‘我是类属性’ def __init__(self): self.obj_attr = ‘我是对象属性’ def eat(self):…

    Python开发 2023年3月31日
    00
  • 使用pip管理库

    2.5 使用pip管理库 安装Python后会默认安装pip工具,该工具可以用来安装、升级和移除库。默认情况下 pip 将从[Python Package Index]https://pypi.org 处下载安装软件包。pip 有许多子命令: “install”, “uninstall”, “freeze” 等等。下面我们来介绍一些比较重要且实用的pip命令…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部