Python库的架构常识(以matplotlib库为例)以及导入方式(import或from ..import...)

本文介绍了如何在Python中创建自己的包,包括创建条件、组织架构(如包和子包结构,__pycache__的作用),以及如何使用from...import...导入单个模块。重点讲解了包的导入策略和__pycache__文件的用途。
摘要由CSDN通过智能技术生成

参考文献:

python 写自己的包(只看这一个)_python包怎么写-CSDN博客

Python入门 模块导入 import ...\from... import... - 知乎 (zhihu.com)

 pyc文件究竟是用来干什么的?_23yy14.pyc-CSDN博客

一、创建Python包的条件:

        1.创建python包的背景:

        对于一段具有简单功能的代码,只需要在代码内用def设置函数即可。随着功能复杂化,需要将调动的函数单独写一个.py文件放在根目录下。随着功能进一步增多,需要按照功能的不同将代码拆分在不同的.py文件中,每个.py文件就是一个模块

        在创建了许多模块之后,我们可以把功能相近的模块组织在同一个文件夹下,该文件夹就是Python功能包

二、Python包的组织架构:

        1.包的创建形式:

        本文采用常见的包组织架构,包目录下有很多子包,子包中含有许多模块。如下图所示,在matplotlib包①下有许多子包②以及包外运行的文件③。

/matplotlib
    /__pycache
        /__init__.cpython-311.pyc
    /_api
        /__pycache__
        __init__.py
        deprecation.py
    /axes
        /__pycache__
        __init__.py
        _axes.py
        _base.py
        _secondary_axes.py
__init__.py
_afm.py
..........

        2.文件夹包__pycache__的作用:  

        打开后我们可以发现一系列的.pyc文件,是Python编译后的PythonCodeObject结果。当python程序运行时,编译的结果存于PyCodeObject,程序运行结束后,Python将PyCodeObject写入到pyc文件中,这是个字节码文件。

         3.matplotlib包中子包的架构:

        我们可以观察到子包的架构如下:__pycache__为_api的子包,__init__.py充当连接模块和包的连接文件,deprecation.py是具有一定功能的模块。

/matplotlib
    /__pycache
        /__init__.cpython-311.pyc
    /_api
        /__pycache__
        __init__.py
        deprecation.py
  

三、使用from...import...语句导入单个模块: 

        1.import...和from...import..的导入库使用方式:

        ①如果想要直接导入一个总包,可以使用“import matplotlib”直接导入。

        ②如果想要导入总包中的一个子包,以上述子包_api为例,使用“import matplotlib._api”导入。

        ③如果想向现有的包中导入其他包,可以使用“from ...import...”,例如向d2l包中导入matplotlib包并且仍命名为d2l,使用“from d2l import matplotlib as d2l”。

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值