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

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

3天内不再提示

Python-模块与包

汽车电子技术 来源:程序猿知秋 作者:程序猿知秋 2023-02-16 14:55 次阅读

模块

模块是Python 程序架构的一个核心概念

  • 模块好比是 ** 工具包** ,要想使用这个工具包中的工具,需要使用 **import **这个关键字进行导入这个工具包
  • 每一个以扩展名 **py **结尾的 Python 源代码文件都是一个 模块
  • 在模块中定义的 全局变量函数 都是模块能够提供给外界直接使用的工具

模块示例

先定义一个模块 cal.py ,里面一个add 方法和 reduce 方法,以及一个变量name

图片

在hello3.py 文件中调用刚创建的模块

图片

打印结果如下:

图片

**小结

**

  • 可以在一个 Python 文件中定义变量 或者函数,然后在 另外一个文件中使用 import 导入这个模块
  • 导入之后,使用 模块名.变量 / 模块名.函数 的方式,进行调用
  • **模块可以让代码方便的被 **复用

**模块名也是一个标识符

**

  • 标示符可以由 字母、下划线 和数字组成
  • 不能以数字开头
  • 不能与关键字重名

注意:如果在给 Python 文件起名时,以数字开头 是无法在 Pycharm 中导入这个模块的

**Pyc文件( c 指 compiled 编译过 的意思

**

  • 浏览程序目录会发现一个 pycache 的目录,目录下有一个** cal.cpython-38.pyc 文件, cpython-38** 表示Python解释器的版本
  • 这个** pyc 文件是由 Python 解释器将 模块的源码** 转换为** 字节码**
    • Python 这样保存 字节码 是作为一种启动 速度的优化

图片

图片

字节码

  • Python 在解释源程序时是分成两人步骤的
    • 首先处理源代码,编译生成一个二进制 字节码
    • 再对** 字节码 进行处理,才会生成 CPU **能够识别的 机器码
  • 有了模块的字节码文件之后,下一次运行程序时,如果在上次保存字节码之后 没有修改过源代码 Python 将会加载** .pyc**文件并跳过编译这个步骤
  • 如果又修改了源代码,下次程序运行时,字节码将自动重新创建

from ... import ...

模块提供了类似名字空间的限制,允许 Python 从模块中导入指定的符号(变量、函数、类等)到当前模块。导入后,这些符号就可以直接使用,而不需要前缀模块名。

示例: 还是在 hello3.py 文件中导入刚刚的cal 模块

图片

图片

  • 是一个 包含多个模块的 **特殊目录 **
  • 目录下有一个 特殊的文件** init .py**
  • 包名的 命名方式 和变量名一致,小写字母+ _

好处 :使用 import 包名,可以一次性导入包 中所有的模块

**常见的包结构

**

pakageName
-------__init__.py
-------moduleName1.py
-------moduleName2.py
------- ...

注:包路径下必须存在 init .py 文件

**示例: 建立一个名为 ani 包,手动创建一个名为 init .py 的空文件, 创建cat 模块和 dog 模块,并分别写一个 eat 函数

**

图片

图片

图片

图片

然后在 hello3.py 文件中调用 ** (方式一)**

图片

图片

然后在 hello3.py 文件中调用 (方式二)****

图片

图片

****注:导包建议采用此种方式,代码简洁,明了。****包中需要导入的模块越多 或者 名称越长,此种方法效果越好

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

    关注

    7

    文章

    2484

    浏览量

    46530
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
  • 程序架构
    +关注

    关注

    0

    文章

    4

    浏览量

    1271
收藏 人收藏

    评论

    相关推荐

    Python的pip安装

    pip是一个安装和管理 Python 的工具,用它我们可以方便的拉一些依赖的库下来
    发表于 07-16 08:04

    TensorFlow常用Python扩展

    TensorFlow 能够实现大部分神经网络的功能。但是,这还是不够的。对于预处理任务、序列化甚至绘图任务,还需要更多的 Python 。下面列出了一些常用的 Python :Nu
    发表于 07-28 14:35

    使用pythonapriltag对AprilTag进行检测

    AprilTags二维码的检测与应用1 AprilTags介绍2 使用pythonapriltag对AprilTag进行检测2.1 python模块apriltag的安装2.2
    发表于 08-17 06:23

    请问python-树莓派如何通过按键控制步进电机正反转?

    步进电机驱动原理是什么?python-树莓派如何通过按键控制步进电机正反转?
    发表于 10-09 08:45

    什么是python模块和库?

    1. 模块以 .py 为后缀的文件,我们称之为 模块,英文名 Module。模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个
    发表于 03-09 16:48

    python常规与命名空间

    python常规与命名空间1. 常规包在 Python 3.3 之前或者说 Python 2 中,一个
    发表于 03-11 15:46

    python-控制khr3hv-master机器人

    python-控制khr3hv机器人,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-22 15:40 2次下载

    python-速成指南

    python 提供好用的两个容器:list 和 dict。插句题外话,其实最好用的容器还是 PHP 提供的关联数组,一个数组就包括了 python 中 list 和 dict 的全部功能,实在是很赞。
    发表于 03-28 16:32 9次下载

    Python-基本概念

    python源程序就是一个特殊的文本文件,可以使用任意文本编辑软件做开发
    的头像 发表于 02-16 14:49 402次阅读
    <b class='flag-5'>Python-</b>基本概念

    Python-列表

    Python中,所有 非数字型变量 都支持以下特点
    的头像 发表于 02-16 14:58 490次阅读
    <b class='flag-5'>Python-</b>列表

    Python-字典

    dictionary (字典) **是除列表外** Python **中,最灵活的数据类型
    的头像 发表于 02-16 15:02 431次阅读
    <b class='flag-5'>Python-</b>字典

    Python-字符串

    字符串就是 一串字符 ,是编程语言中表示文本的数据类型,在Python中使用一对双引号 "" 或者一对单引号来定义.
    的头像 发表于 02-16 15:05 640次阅读
    <b class='flag-5'>Python-</b>字符串

    Python-模块、包、异常

    * 程序运行时,如果Python 解释器遇到了错误,会停止程序运行,并且提示错误信息,**这就是异常**,* 程序停止执行并提示错误信息的动作,称为 **抛出异常**
    的头像 发表于 02-16 15:40 504次阅读
    <b class='flag-5'>Python-</b><b class='flag-5'>模块</b>、包、异常

    Python-正则与简单web服务器

    Python中,可以通过使用** re 模块**的正则表达式来匹配字符串
    的头像 发表于 02-16 15:48 361次阅读
    <b class='flag-5'>Python-</b>正则与简单web服务器

    网络工程师学Python-文件删除

    Python 文件删除是 Python 开发中常用的一项操作,本文将针对 Python 中的 os 模块提供多个示例,介绍如何删除不同类型的文件。
    的头像 发表于 04-27 09:24 320次阅读