045.Python包和模块_初识包和模块
2023-12-22 17:45:49
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!