0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python包、模块和库是什么

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-09 16:47 次阅读

1. 模块

.py 为后缀的文件,我们称之为 模块,英文名 Module。

模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

假设现在有一个名为 demo.py 的文件,文件内容如下

name="Python编程时光"
print("导入成功")

直接使用 import 语句就可以导入,导入之后,就可以使用 模块名.变量名 的方式访问这个变量。

>>> import demo
导入成功
>>> demo.name
'Python编程时光'

在导入模块的时候,有一个非常重要的全局变量需要掌握,那就是 __name__ 这个变量。

现在把 demo.py 的内容改成

$ cat demo.py
print("__name__ 的值为: " + __name__)

当模块被直接执行时, __name__ 的值为 __main__

$ python demo.py
__name__ 的值为: __main__

当模块被导入时, __name__ 的值为 模块名

>>> import demo
__name__ 的值为: demo

当该模块被导入后,会在当前目录下产生一个 叫做 __pycache__ 的缓存文件夹。

$ tree
.
├── __pycache__
│ └── demo.cpython-39.pyc
└── demo.py

这个文件夹有什么用呢?

简单来说,当你导入模块的时候,Python解释器会把模块的代码编译成字节码,并放入 __pycache__文件夹中。

这样以后再次运行的话,如果被调用的模块未发生改变,那就直接跳过编译这一步,直接去__pycache__文件夹中去运行相关的 *.pyc 文件,大大缩短了项目运行前的准备时间。

2. 包

在早一点的 Python 版本(Python 3.3 之前)中,如果一个文件夹下有一个 __init__.py 文件,那我们就称之为包,英文名 Package。

在后来的 Python 版本(Python 3.3 开始)中,就没有这个要求了,只要是文件夹就可以当做包,我们称之为空间命名包,为做区分,我把上面那种包称之为 传统包。

考虑到很多人其实并不需要接触到空间命名包,所以我将空间命名包的内容单独放在一节里,为选读章节。

今天这节里主要讲讲传统包的内容。

传统包里的 __init__.py 可以为空文件,但一定要有该文件,它是包的标志性文件,在需要情况下可以在里面进行一些包的初始化工作。

$ tree
.
└── demo
    ├── __init__.py
    ├── bar.py
    └── foo.py

一个包里可以有多个模块,比如上面的 foo.pybar.py 都属于 demo 模块。

如果要使用这些模块,就需要这样导入

>>> import demo.foo
成功导入 foo.py
>>> import demo.bar
成功导入 bar.py

或者这样

>>> from demo import foo
成功导入 foo.py
>>> from demo import bar
成功导入 bar.py

3. 库

Python 库是指一定功能的代码集合,通常认为他是一个完整的项目打包。

库->包->模块,是从大到小的层级关系!

库:一个库可能由多个包和模块组成

包:一个包可能由多个模块组成

模块:一堆函数、类、变量的集合

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46568
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83486
收藏 人收藏

    评论

    相关推荐

    基于Python的地图绘制教程

    本文将介绍通过Python绘制地形图的方法,所需第三方Python相关模块包括 rasterio、geopandas、cartopy 等,可通过 pip 等方式安装。
    的头像 发表于 02-26 09:53 321次阅读
    基于<b class='flag-5'>Python</b>的地图绘制教程

    如何使用Python PySNMP模块获取设备指标呢?

    PySNMP 是一个跨平台的纯Python SNMP 引擎实现。
    的头像 发表于 01-12 13:59 566次阅读

    python中计算排列组合的函数有哪些

    Python中,有多种可以用于计算排列组合的函数和模块。下面将详细介绍一些常用的函数和模块,并提供详实和细致的说明。 math模块Python
    的头像 发表于 11-29 16:33 1510次阅读

    不属于python的内置函数

    : math模块函数:Python的math模块提供了很多数学函数,如sin、cos、sqrt等。这些函数不是内置函数,而是需要先导入math模块才能使用。 random
    的头像 发表于 11-29 14:27 551次阅读

    python如何导入模块

    Python是一种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块模块是一个包含函数、类和变量等定义的文件,我们可以使用import语句将这些
    的头像 发表于 11-22 14:46 548次阅读

    python 使用Dis模块进行代码性能剖析

    就像一个黑匣子,很多时候我们不知道python内部是怎样执行代码的,而且DEBUG的时候也没有机器指令可以查看,非常不利于代码优化。但是没关系,现在我们有Dis模块来对代码进行性能剖析。 为什么下面
    的头像 发表于 11-03 15:39 274次阅读
    <b class='flag-5'>python</b> 使用Dis<b class='flag-5'>模块</b>进行代码性能剖析

    collections:一款强大的内置容器

    01 初识collections Collections模块python的内置模块之一,提供了很多容器类型。按照官方文档介绍,它被用作是对python通用内置类型(list、dict
    的头像 发表于 11-01 11:38 6396次阅读
    collections:一款强大的内置容器

    fileinput 的用法及功能

    Python 的内置模块,但我相信,不少人对它都是陌生的。今天我把 fileinput 的所有的用法、功能进行详细的讲解,并列举了一些非常实用的案例,对于理解和使用它可以说完全没有问题。 1. 从标准
    的头像 发表于 11-01 10:43 657次阅读
    fileinput 的用法及功能

    什么是事件循环

    Python的Asyncio模块提供了管理事件、协程、任务和线程的方法,以及编写并发代码的原语。此模块的主要组件和概念包括: 事件循环 : 在Asyncio模块中,每一个进程都有一个事
    的头像 发表于 11-01 10:00 326次阅读
    什么是事件循环

    pypinyin如何将汉字转为拼音

    将汉字转为拼音,可以用于批量汉字注音、文字排序、拼音检索文字等常见场景。 现在互联网上有许多拼音转换工具,基于Python的开源模块也不少,今天给大家介绍一个功能特性最多的模块
    的头像 发表于 11-01 09:28 198次阅读

    Python 在什么情况下才进行重试

    ,但如何写得优雅、易用,是我们要考虑的问题。 这里要给大家介绍的是一个第三方库 - Tenacity (标题中的重试机制并并不准确,它不是 Python 的内置模块,因此并不能称之为机制),它实现了几乎我们可以使用到的所有重试场景,比如: 在
    的头像 发表于 10-21 11:18 194次阅读

    Python汉字拼音转换工具

    将汉字转为拼音,可以用于批量汉字注音、文字排序、拼音检索文字等常见场景。 现在互联网上有许多拼音转换工具,基于Python的开源模块也不少,今天给大家介绍一个功能特性最多的模块
    的头像 发表于 10-17 17:18 296次阅读

    python自动化脚本办公-文件整理

    归类到不同的文件夹里。 python能力:使用python的内置模块os和shutil来操作文件和目录,使用glob模块来匹配文件名,使用with语句来打开和关闭文件。 实现步骤: 导
    的头像 发表于 07-20 09:49 674次阅读

    动态库封装成python模块的方法

    之前的文章 将静态库封装成 python 模块中讲解了如何将静态库封装成 python 模块,静态库封装相对来说还是有点复杂,今天来介绍下动态库封装成
    发表于 07-13 15:24 385次阅读

    Python中telnetlib模块的基本使用

    telnetlib 是 Python 标准库中的一个模块,它提供了 Telnet 协议的客户端功能。使用 telnetlib 模块,我们可以在 Python 中编写脚本来自动化 Tel
    的头像 发表于 05-04 14:27 6497次阅读