045.Python包和模块_初识包和模块

发布时间:2023年12月22日

无奋斗不青春

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

分隔线

包和模块的概念

  • 模块是一组相关的函数和数据的集合,而包是一组相关模块的集合

  • 模块

    • 为了使代码更容易维护,提高代码重用价值;可以将一组相关功能的代码写入一个单独的.py文件中供别人导入使用;这个.py文件就被称作是一个模块
    • 在这里插入图片描述
    • 包是一个有层次的文件目录结构,它定义了由n个模块或n个子包
    • 具体表现形式
      • 包含__init__.py文件的目录
      • 这个目录下一定得有这个__init__.py文件和其它模块或子包
    • 在这里插入图片描述
    • 参照其他编程语言的一个喊法
    • 完成一定功能的代码集合;
    • 具体表现可以是一个模块,也可以是包
  • 框架

    • 一个架构层面的概念;
    • 从库功能的角度来看:
      • 解决一个开放性问题而设计的具有一定约束性的支撑结构
    • 通过一个框架,可以快速实现一个问题解决的骨架;到时按照框架
      角色去填充,交互就可以完成—个质量好,维护性高的项目
    • 例如:Web框架
      Flask
      Django
      


包和模块的作用

  • 1、编写好一些“轮子”工具代码,供其他模块调用
    • 有效的对程序进行分解,方便代码的管理和维护
  • 2、防止同一模块内的命名重复问题


包和模块的分类

标准包/模块
  • 标准包/模块
    • 安装Python后,自动帮我们安装好的一些模块,可以直接导入使用(满足我们基本的功能需求)
    • 每个安装Python的用户电脑上都有这些模块,在你电脑上写的使用某个系统模块的代码,到其他人电脑上,同样能够运行满足我们基本的功能需求
  • 特殊:内建包/模块
    • 当我们在编码的过程当中,python自动帮我们导入的模块;
    • 我们使用这些功能的时候,不需要手动的导入该模块,直接使用就可以
    • 如:builtins模块,可以通过dir(builtins)查看内建模块当中可用的API(在python2.x中是__builtin__)
第三方包/模块
  • 有些功能,系统模块没有实现,或者实现了但我们使用起来比较复杂,就有开发人员,开发了一些使用更加方便的模块,供其他开发人员使用
    • 有可能也使用到了系统的某些横块
    • 有可能没有使用
  • 其他开发人员,需要下载安装才可以
    • 如果你的代码使用了菜个三方模块,到时候把代码拷贝给别人后,别人也需要先安装同样的三方模块后才能运行
  • 如:requests模块
自定义包/模块
  • 我们自己写的一些好用的模块
  • 发布出去给别人用,就变成了三方包/模块


包和模块的创建

模块的创建
  • 直接创建一个.py文件即可
包的创建
  • 创建一个文件夹,文件夹内务必创建一个__init__.py文件(并非必须)
    • 在python3.3版本往后可以不用创建,但是为了版本兼容,以及做一些其他包处理操作,目前还是建议创建)
  • __init__.py文件的作用
    • 第一次导入包的时候,会自动调用执行__init__.py文件
多层级包的创建
  • 在包里面直接创建另外一个包即可,可以无限级嵌套


包和模块的基本信息

包和模块的名称
  • 模块名称:就是py文件的名称,但不包含.py这个后缀
  • 包名称:就是文件夹(目录)的名称
包和模块的位置
  • 查看标准包和模块的位置
    模块名.__file__
    
    
    import 包名
    包名.__file__
    
    # 包名.__file__ 获取到的实际是包内部__init__.py文件的位置,如果没有__init__.py文件,则返回None
    
包和模块里面的内容
  • 查看包和模块里面的内容(API)
    dir(模块名)
    
    
    import 包名
    dif(包名)
    
文章来源:https://blog.csdn.net/weixin_50296259/article/details/135157027
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。