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

    文章

    2822

    浏览量

    52790
  • python
    +关注

    关注

    57

    文章

    4856

    浏览量

    89551
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章中,我们将详细介绍Python调用API的方法和技巧。 一、用Requests发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
    的头像 发表于 11-03 09:15 319次阅读

    Pico Technology发布Python软件pyPicoSDK

    近日,全球领先的基于 PC 的仪器供应商Pico Technology 官方发布了 pyPicoSDK,这是一款旨在简化 PicoScopes 应用的 Python 软件。pyPicoSDK 在
    的头像 发表于 09-29 15:03 637次阅读

    termux如何搭建python游戏

    升级pip至最新版本 ``` 2. 安装游戏开发依赖 根据游戏类型安装必要模块: ```bash # 2D游戏框架(如Pygame) pip install pygame # 数学
    发表于 08-29 07:06

    linux虚拟环境中调用Linux 版matlab编译的python时出错

    matlab代码编译为CAO_pythonpython,其中cp_Main_python.m为入口文件,编译后生成的文件有mccExcludedFiles.log、setup.py
    发表于 07-18 10:40

    鸿蒙5开发宝藏案例分享---优化应用体积大小问题

    ?** 鸿蒙体积优化实战:藏在官方文档里的宝藏技巧!** 大家好呀~我是你们的鸿蒙开发小伙伴!今天在翻官方文档时,发现了一个超实用的「体积优化」案例宝藏!这些技巧明明能大幅提升应用体验,却很
    发表于 06-13 10:09

    python入门圣经-高清电子书(建议下载)

    和Pygal 等强大的Python 和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容; 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据
    发表于 04-10 16:53

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    RaspberryPiOS预装了Python,你需要使用其虚拟环境来安装。今天出版的最新一期《TheMagPi》杂志刊登了我们文档负责人NateContino撰写的一篇实用教程,帮助你入门
    的头像 发表于 03-25 09:34 627次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    Python在嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的和快速的开发周期,这使得它在某些嵌入式场景
    的头像 发表于 03-19 14:10 1184次阅读

    是否可以使用OpenVINO™部署管理器在部署机器上运行Python应用程序?

    使用 OpenVINO™部署管理器创建运行时软件。 将运行时转移到部署机器中。 无法确定是否可以在部署机器上运行 Python 应用程序,而无需安装OpenVINO™ Toolkit 和
    发表于 03-05 08:16

    运行OVModelForCausalLM Python模块时出错了,怎么解决?

    创建了一个自定义 Python* 代码,类似于遵循 240-dolly-2-instruction 的 Jupyter 笔记本。 OVModelForCausalLM Python* 模块运行时出错。
    发表于 03-05 06:44

    Python Connector for InterBase连接解决方案

    ,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全符合 Python DB API 2.0 规范,并作为 Windows、macOS 和 Linux 的 wheel 分发。 特征 高性能
    的头像 发表于 01-22 14:34 701次阅读

    使用Python实现xgboost教程

    装: bash复制代码conda install -c conda-forge xgboost 2. 导入必要的 在你的Python脚本或Jupyter Notebook中,导入必要的
    的头像 发表于 01-19 11:21 2200次阅读

    适用于MySQL和MariaDB的Python连接器:可靠的MySQL数据连接器和数据

    和 Linux 的 wheel 分发。 直接连接 该解决方案使您能够通过 TCP/IP 建立与 MySQL 或者 MariaDB 数据服务器的直接连接,而无需数据客户端。另外
    的头像 发表于 01-17 12:18 843次阅读
    适用于MySQL和MariaDB的<b class='flag-5'>Python</b>连接器:可靠的MySQL数据连接器和数据<b class='flag-5'>库</b>

    适用于Oracle的Python连接器:可访问托管以及非托管的数据

    适用于 Oracle 的 Python 连接器 适用于 Oracle 的 Python 连接器是一种可靠的连接解决方案,用于从 Python 应用程序访问 Oracle 数据服务器和
    的头像 发表于 01-14 10:30 737次阅读

    数据事件触发的设置和应用

    数据无论对于生产管理还是很多的实际应用都非常重要。小编这次聊一下数据事件触发的应用。示例使用了postgresql和Python
    的头像 发表于 12-13 15:14 1015次阅读