模块介绍
- 概念
- Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
- 作用
- 模块让你能够有逻辑地组织你的 Python 代码段。
- 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
- 模块能定义函数,类和变量,模块里也能包含可执行的代码。
模块使用
- 模块的引入
- 引入语法
导入多个模块的话,逗号隔开就可以import module1[, module2[,... moduleN]
比如要引用模块random,就可以在文件最开始的地方用 import random 来引入。- 调用语法
模块名.函数名(参数) print(random.randint(1,6))
注意:一个模块只会被导入一次,不管你执行了多少次import
-
模块中函数,变量,类的引入
- from…import 语句 语法
from modname import name1[, name2[, ... nameN]]
- from…import 语句 案例
from MyTools import showTenRandomNumber,showTenRandomNumber1
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中
导入之后,被导入的方法可以直接使用方法名完成调用,不再需要模块名showTenRandomNumber() showTenRandomNumber1()
-
模块中所有内容的引入
- from…import * 语法
from modname import *
- from…import * 案例
from MyTools import *
直接通过函数名就可以完成调用
showTenRandomNumber() showTenRandomNumber1() print(PI)
自定义模块的制作
- 封装任意一个工具类()
模块的测试
- 测试代码
在模块中,完成代码的测试
- 使用模块
导入模块,发现模块中的测试代码会先执行一次,
解决方案:给测试代码加判断条件:
if __name__ == '__main__':
pass
__name__ :python解释器主动执行的代码才会为'__main__'
-
all的用法(python3之后不建议使用)
- import 不受影响
- from 模块 import *
使用from 模块 import * 只会导入__all__中包含的方法 __all__ = ['showTenRandomNumber']
Python中的包
- 概念
包是一个分层次的文件目录结构,它定义了一个由模块及子包,
和子包下的子包等组成的 Python 的应用环境,包中要包含一个__init__.py模块
- 新的模块名
包名.模块名
- 包中模块的导入方式
import package1.module1
或者
from package1 import module1
- 包中数据的访问方式
package.module1.moduleTest1()
- _ _ init_ _.py 的内容
__init__.py 也是一个模块,可以在模块中写任意代码
首次使用包的时候,__init__.py会默认执行一次
也可以写:
from . 模块1 import *
from . 模块2 import *
这样在导入包的时候,__init__.py中的代码会默认执行
这样的好处是: 可以直接导入包
弊端,如果两个包中有同名变量,会出问题
模块的发布
-
为什么要发布
- 查找顺序(sys.path)
- 安装到系统目录下
-
怎么发布?
- 要发布的目录结构(uft-8格式)
|----setup.py |----package1 |----module1 |----module2 |----package2 |----module3 |----module4
- 编辑setup文件
from distutils.core import setup setup(name='压缩包的名字',version='1.0',description='描述', author='大卫',py_modules=['package1.模块1','package1.模块2', 'package2.模块1'])
- 构建模块
DOS窗口找到该文件 python setup.py build
- 生成发布压缩包
python setup.py sdist
自定义模块的安装、使用
- 安装的方式
- 找到模块的压缩包
- 解压
- 进入文件夹
- 执行命令 python setup.py install
注意:如果在install的时候,
指定目录安装,可以使用
python setup.py install --prefix=安装路径
暴力安装
- 直接将包复制到site-packages
网友评论