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

    文章

    2862

    浏览量

    53641
  • python
    +关注

    关注

    60

    文章

    4896

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    onsemi PYTHON系列图像传感器:技术解析与应用指南

    PYTHON 500和PYTHON 1300图像传感器以其卓越的性能和丰富的功能,成为了众多工程师的首选。本文将对这些传感器进行详细的技术解析,帮助电子工程师更好地了解和应用这些产品。 文件下载: NOIP1SN1300A-D.PDF 一、产品概述 onsemi的
    的头像 发表于 06-08 14:25 87次阅读

    直播预告 | 睿擎派实战:zlib 压缩移植与嵌入式应用(开源软件移植专题第2期)

    数据文件太大存不下?传感器数据量大传不动?固件升级占用过多Flash?5月27日(周三)晚8点,睿擎派「开源软件移植适配专题」第2期,以RC3506为硬件平台,完整演示zlib压缩
    的头像 发表于 05-25 18:15 123次阅读
    直播预告 | 睿擎派实战:zlib 压缩<b class='flag-5'>库</b>移植与嵌入式应用(开源软件<b class='flag-5'>包</b>移植专题第2期)

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    : https://code.visualstudio.com/docs/python/python-tutorial 请注意,这里我们将演示如何在全局环境中安装所需的软件。对于使用多个Py
    发表于 03-31 09:39

    如何在 VisionFive 上使用 Python

    来安装 愿景五.gpio 软件: sudo pip install 愿景五.gpio或者,您可以执行以下命令: sudo pip3 install 愿景五.gpio (可选)如果将源代码复制到
    发表于 03-30 08:28

    如何在 Vision Five 2 上安装 python

    这可能是一个完全愚蠢的问题,但我如何在 Vision Five 2 上安装 python 。 使用该命令后,它给了我这个错误。 默认为用户安装,因为普通站点不可写 错误:找不到满足要求
    发表于 03-06 07:51

    无法去除 Python VisionFive.i2c 的终端输出?

    烧的官方最新八月份的 debian 12 的系统。 根据这个案例安装好了 python 环境和 VisionFive 。 执行下面这条代码: import VisionFive.i2c
    发表于 02-25 06:13

    安装 Python VisionFive_GPIO失败是哪里出了问题?

    尽管按照最新的文档,我在安装 VisionFive.gpio 时仍然收到错误 sudo apt 安装 libxml2-dev libxslt-dev python3 -m pip 安装请求
    发表于 02-11 06:13

    初识ros2 功能建立与可执行文件的配置

    本文介绍了ROS2程序的两种启动方式:直接运行可执行文件(ros2 run)和使用启动文件(ros2 launch)。重点讲解了Python软件的结构,包括package.xml、setup.py
    的头像 发表于 01-22 13:41 626次阅读

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Python调用API教程

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

    Pico Technology发布Python软件pyPicoSDK

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

    termux如何搭建python游戏

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

    华秋 KiCad 发行版 9.0.4 发布:属于您自己的云端器件模块电路

    “  本次更新增加了个人中心,让您可以维护自己的云端器件模块电路。同时增加了 PCB/SMT 下单功能,让您可以在 KiCad 里直接下单并追踪订单的进度。  ”   华秋发行版概览 华秋
    的头像 发表于 08-28 19:11 1.4w次阅读
    华秋 KiCad 发行版 9.0.4 发布:属于您自己的云端器件<b class='flag-5'>库</b>及<b class='flag-5'>模块</b>电路<b class='flag-5'>库</b>

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

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

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

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