版权声明:CSDN 博主刘康康 https://blog.csdn.net/liiukangkang/article/details/82974486
PYTHON 核心开发
1.包和模块的定义
python 中的包和模块,首先是按照代码的功能进行整理整合,想相似功能的代码/大量代 码整理到一起方便统一管理
模块(module):python 中每个 python 文件就是一个模块,每个 python 文件中,封装 类似功能的变量、函数、类型等等,可以被其他的 python 模块通过 import 关键字引入 重复使用!
包(pakcage):包含多个 python 文件/模块的文件夹,并且文件夹中有一个名称为__init__.py 的特殊声明文件,那么这个文件夹就是一个包(模块包),可以将大量功能相 关的 python 模块包含起来统一管理,同样也可以被其他模块通过 import 关键字引入重 复使用封装的模块和代码!
2.包和模块的复用
python 中,将代码封装成包和模块,最主要的目的是通过有效的整理代码,提高代码的复用性能,这里整理好封装起来的包和模块的代码,就可以被其他代码引入使用了,类似生活中的工具被其他人借用一样 .
3.import引入与 from . . import 引入
包和模块的引入,通常有两个关键语法
⚫ import 包/模块
⚫ from 包/模块 import 具体对象
4.from import 相对引入
首先,相对引入本身是相对当前正在操作的文件的路径
同一级路径使用符号:.
上一级路径使用符号:..
5. from import 绝对引入
绝对引入操作方式比较直接,从最外层的包的源头直接开始操作; 如:from pygame import K_A, K_S, K_D, K_W
这种操作方式在第三方模块的操作中是司空见惯的,但是在独立的项目开发中使用较少。
模块
python 中的模块,指代的就是一个 Python 文件
(1) 在一个 python 模块中可以包含的数据有:变量、函数、类型等等,是一个完整的 独立的代码块!
(2) 独立的一个模块中的变量:全局变量、局部变量;能被其他模块引入使用的只有当 前模块中的全局变量,其他模块对于当前模块中全局变量的操作和普通变量一致!
(3) 模块一旦被其他模块引入,就会自动执行模块中的所有代码
(4) 模块中的测试代码可以包含在 if __name__ == “__main__”: 语句块中,这 样不会再其他模块引入时执行这些测试代码
包
1.python 解释器在执行处理代码时,会默认将包含 Python 文件的文件夹处理成默认包 默认包只具备文件路径关联的功能,无其他功能!
2.python 中的标准包,是在文件夹中包含包声明文件__init__.py 的文件夹,主要包含了 一个名称为__init__.py 的模块文件,该文件夹就是一个 Python 模块包
3.在一个 python 的包中,可以创建多个模块,统一由 python 包进行路径管理和导入方式 的管理
包的本地发布
# 引入构建包信息的模块 from distutils.core import setup # 定义发布的包文 件的信息 setup( name=“py1808-plane”, # 发布的包文件名称 version=”1.0”, # 发布的包的版本序号 description=” 我的测试包 ”, # 发布包的描述信息 author=” YiFoErLiu ”, # 发布包的作者信息 author_email=”[email protected]”, # 作者联系邮箱信息 py_modules=[‘__init__.py’,’..’,..]# 发布的包中的模块文件 列表 ) |
执行当前程序包文件的构建操作命令:按照标准格式组织包中的所有数据文件
python setup.py build |
REMARK: 构建完毕的文件 可以通过 python setup.py install命令直接当成第三方模块进行安装 |
执行命令进行包的打包发布
python setup.py sdist |
REMARK :打包的文件,主要是方便进行网络传输,打包之后会在 dist中创建包含包中所有信息的 tar.gz压缩包文件 ;该文件就可以通过 git等方式提交给对应的开源组织发布你的自定义模块了 |
包的网络发布
首先,进入http://pypi.python.org/pypi网站上,注册一个自己的账号吧! 这个网站是目前大部分 python 第三方模块集中的一个管理社区平台
其次:你已经准备好你自己的 python 程序包,并在包中准备好了 setup.py 文件 在 setup.py 中,已经定义好了程序包的所有描述信息
damy_users/ __init__.py moduels.py manager.py menus.py setup.py
执行打包命令
python setup.py sdist
接下来: 首先安装第三方模块:twine,用于上传我们打包的项目文件
pip install twine 上传项目
twine upload dist/*
此时,如果我们还需要我们自己开发的某个模块的话,直接通过 pip 命令安装即可
pip install py1808-plane