模块
- 一个.py文件就是一个模块
- 使用模块的优点
- 提高代码的可维护性
- 编写代码不必从0开始,一个模块编写完毕可以被其他模块引用
- 使用模块可以避免函数名和变量名冲突,相同名称的可以存放在不同的模块中(不要和内置函数重名)
- https://docs.python.org/3/library/functions.html python内置函数
- 避免模块重名,python引用了按目录来组织模块的方法,称为包(package)
- 每一个包目录下面都会有一个__int__.py文件
- 这个文件时必须存在的,否则python就会把这个目录当成普通目录,而不是一个包
- 调用时模块名变成了包名.模块名
- 创建自己的模块注意点
- 模块名要遵循python命名规范,不要使用中文、特殊字符
- 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块
检查方法是在python交互模式下执行import 模块名
成功则说明系统有此模块
使用模块
python本身内置了很多,模块安装完就可立即使用
- 引用模块
- import 语句
- from…import 语句
从模块中导入一个指定的部分到当前命名空间中 - from…import* 语句
把一个模块的所有内容全都导入到当前的命名空间
- 搜索路径
- 当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
当前目录
如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。 - 模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
- 当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
- python标准文件模板
#!/usr/bin/env python3
#使文件可在unix/Linux/mac环境运行# -*- coding: utf-8 -*- #编码格式
- ’ a test module ’ #模板的文档注释
- author = ‘xia’ #填写作者
- import sys #导入模块
- 作用域
- 正常的函数和变量名是公开的(public),可以直接被引用
- 类似__xxx__这样的变量是特殊变量,可以直接被引用,但是有特殊用途
例如__author__ , name , doc(访问模块定义的文档注释) - 类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用
python没有办法限制private不被访问,但是编程习惯上不应该使用非公开的函数和变量
把外层函数在模块内公开,而把内部逻辑用private函数隐藏起来,是一种代码封装和抽象的方法
_xxx严格意义上不是私有变量,可以被访问,但是应该把起当成私有变量使用,不轻易访问
安装第三方模块
- 在python中安装第三方模块是通过包管理工具pip完成的
- 可通过在cmd运行pip命令,判断是否安装
- 运行 pip install 库名称,可安装该库
- 库名称在 pypi.python.org 或官网查找
- 安装常用库
- 使用Anaconda,是一个基于python的数据处理和科学计算平台,内置了很多第三方库,只安装Anaconda就可以了
- 可以在Anaconda官网下载https://www.anaconda.com/download/
- 模块搜索路径
- 当我们试图加载一个模块时,python会在指定的路径下搜索对应的.py文件,找不到就会报错
- 默认情况下,python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存在放sys的path变量中
- 添加自己的搜索目录
- 方法1:直接修改sys.path,添加要搜索的目录
import sys
sys.path.append(‘自定义路径’)
这种方法在运行时修改,运行结束后失效 - 方法2:设置环境变量PYTHONPATH,该环境变量的内容会被自动添加到模块搜索路径中
只需要添加自己的搜索路径,python本身的搜索路径不受影响
- 方法1:直接修改sys.path,添加要搜索的目录