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 文件中调用(方式二)****

图片

图片

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

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

    关注

    7

    文章

    2587

    浏览量

    46917
  • python
    +关注

    关注

    53

    文章

    4748

    浏览量

    83951
  • 程序架构
    +关注

    关注

    0

    文章

    4

    浏览量

    1393
收藏 人收藏

    评论

    相关推荐

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

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

    什么是python模块和库?

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

    python常规与命名空间

    python常规 与命名空间 1. 常规包在 Python3.3 之前或者说 Python2 中,一个
    发表于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次下载

    在Anaconda中安装pythonseaborn

    在Anaconda中安装 python seaborn(现代电源技术题库)-在Anaconda中安装 python seaborn
    发表于09-18 15:01 5次下载
    在Anaconda中安装<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn

    python模块和库是什么

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

    详解python常规与命名空间

    python常规 与命名空间 1. 常规 Python3.3 之前或者说 Python
    的头像 发表于03-11 15:46 3258次阅读

    Python-字典

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

    Python-模块、异常

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

    python模块相对导入from和import介绍1

    文件**init**.py下, python通过import module导入 模块时,先搜索程序运行主目录。 程序运行主目录为运行的py文件所在目录,而不是执行 python.e
    的头像 发表于02-21 14:15 930次阅读

    python模块相对导入from和import介绍2

    python2.7先搜索当前 目录,再搜索sys.path 模块搜索路径。即先相对再绝对。 本示例在交互模式执行,非文件模式执行。
    的头像 发表于02-21 14:17 604次阅读

    简述python模块import和from及all

    python指定导入目录路径,称为 导入。 通过import和from导入 模块。 通过**all**指定导入的 模块和导入的
    的头像 发表于02-21 14:20 1121次阅读

    Python关于的概念和结构

    概念和结构 pycharm中创建 概念和结构 当一个项目中有很多个 模块时,需要再进行组织. 我们将功能类似的 模块放到一起,形成了“ ”. 本质上,“
    的头像 发表于09-12 17:40 850次阅读
    <b class='flag-5'>Python</b>关于<b class='flag-5'>包</b>的概念和结构

    PythonSDK的使用

    Shodan Web端非常好用,但如果我们有从 Python搜索的需求怎么办? 没关系,Shodan 官方也提供了 PythonSDK ,下面就来讲讲这个 SDK 的使用。 1
    的头像 发表于10-30 15:51 608次阅读
    <b class='flag-5'>Python</b> SDK<b class='flag-5'>包</b>的使用