模块
模块包含标准库模块(python默认提供的模块),自定义模块。
模块化编程:便于将一个任务分解多个模块,实现团队协作开发,完成大规模程序。实现代码复用,一个模块实现后,可以重复调用。维护性增强。
模块化编程的流程
一般流程:1.设计api,进行功能描述。2.编码实现api中描述的功能。3.在模块中编写测试代码,并消除全局代码。4.使用私有函数实现不被外部客户端调用的函数模块。
如何查看api,在import 包名 上,ctrl+鼠标左键可以进入包的源代码中查看。
注释
描述
同样的,在模块写一些模块中的函数时,也可以ctrl+鼠标左键跳到原文件中查看作者标注的一些注释。
查看api
通过代码访问
import math
help(math)
或者找到python的安装路径下docs 子目录,双击打开 chm 文档,即可通过索引输入“math”查询到对应的 API 内容。
自己定义模块与调用
模块的导入
import
import 模块名 #导入一个模块
import 模块 1,模块 2… #导入多个模块
import 模块名 as 模块别名 #导入模块并使用新名字
import可以导入:a.使用 python 编写的代码(.py 文件);b.已被编译为共享库或 DLL 的 C 或 C++扩展;c.包好一组模块的包d.使用 C 编写并链接到 python 解释器的内置模块;
from…import
from 模块名 import 成员 1,成员 2,…
import(包)或__importlib__(包)动态导入,官方推荐后者
a=__import__(模块)
import importlib
b=__importlib__(模块)
每个模块都只需要导入一次。重新加载可以使用importlib.reload(),但是没感觉有什么用。
包package的使用
当一个项目中有很多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了“包”。本质上,“包”就是一个必须有__init__.py 的文件夹。
包下面可以包含“模块(module)”,也可以再包含“子包(subpackage)”。就像文件夹下面可以有文件,也可以有子文件夹一样。
pycharm 中创建包
在要创建包的地方单击右键:New–>Python package 即可。pycharm 会自动帮助我们生成带有__init__.py 文件的包,然后就可以在这个文件下添加.py文件作为小的子包。
导入包操作
例如我们在b中的module_B1中掉用a-aa的module_AA.py。
三种写法:
1.import a.aa.module_AA,在使用时,必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()。
2.from a.aa import module_AA,在使用时,直接可以使用模块名。 比如:module_AA.fun_AA()。
3.from a.aa.module_AA import fun_AA,在使用时,直接可以使用函数名。 比如:fun_AA()。
模糊导入用*导入
import * 这样的语句理论上是希望文件系统找出包中所有的子模块,然后导入它们。这可能会花长时间等。Python 解决方案是提供一个明确的包索引。不建议使用。
包内引用
注意点的个数。
from … import module_A #…表示上级目录 .表示同级目录
from . import module_A2 #.表示同级目录
sys.path 和模块搜索路径
寻找模块文件的顺序
它一般按照如下路径寻找模块文件(按照顺序寻找,找
到即停不继续往下寻找):
1.内置模块
2. 当前运行程序的目录
3. 程序的主目录
4. pythonpath 目录(如果已经设置了 pythonpath 环境变量)
5. 标准链接库目录
6. 第三方库目录(site-packages 目录)
7. .pth 文件的内容(如果存在的话)
8. sys.path.append()临时添加的目录
如果没有则报错。
模块的发布与安装
本地发布
整个模块应这样排布,setup起记录作用。
setup的格式可以直接粘贴下面的格式来填写
from distutils.core import setup
setup(
name='baizhanMath2', # 对外我们模块的名字
version='1.0', # 版本号
description='这是第一个对外发布的模块,测试哦', #描述
author='gaoqi', # 作者
author_email='gaoqi110@163.com',
py_modules=['baizhanMath2.demo1','baizhanMath2.demo2'] # 要发布的模块
)
打包的时候选择模块-右键-open in terminal
然后在下面输入python setup.py sdist
然后就会生成一个压缩包
本地安装模块
第三方库位置一般在 python 目录/Lib/site-packages 目录,安装 成功后,文件夹会存在这个位置中。
但他没说这个包是在哪打开的,这里也没有现成的包让我练习导入,如果后续有需要再补全这个部分