一、模块
名称 | 描述 |
---|---|
模块 | 每一个以扩展名.py结尾的python源代码文件都是一个模块 1. 模块就好比工具包,要是用这个工具包中的工具,就需要导入这个模块 2. 在模块中定义的全局变量、类、函数都是提供给外界直接使用的工具 |
模块名 | 模块名同样也是一个标识符,需要符合标识符命名规则 |
模块别名 | 模块名太长,为了方便代码中使用,可以使用as取模块别名 1. 必须符合大驼峰命名法 |
1.1 模块的导入与使用
- 模块导入的语句统一写在代码顶部
- 每个模块的导入应独占一行
- 导入模块存在函数重名时,后导入的模块的函数会覆盖掉先导入的模块的函数,但是可以通过as取别名进行调用
- 导入模块(文件)的中所有没有任何缩进的代码都会被执行一遍
提示:
- 所有没有任何缩进的代码是可直接执行的代码,一般在导包后,不需要被调用执行的测试代码,需要进行以下处理
def main(): """ 测试代码 """ pass if __name__ == '__main__': main()
1.1.1 全部导入
import
import 模块名1 [as 模块别名1]
import 模块名2 [as 模块别名2]
...
import 模块名n [as 模块别名n]
- 使用模块:
模块名.
或模块别名.
1.1.2 局部导入
第一种方式:导入部分工具
from ...import
from 模块名1 import 工具名1 [as 工具别名1]
from 模块名2 import 工具名2 [as 工具别名2]
...
from 模块名n import 工具名n [as 工具别名n]
- 使用模块:
工具名.
或工具别名.
第二种方式:导入所有工具
from ...import *
不推荐,函数冲没有提示,出现错误不好排查
- 使用模块:
工具名.
1.2 模块的搜索顺序
先搜索当前目录的指定模块名的文件,如果有就直接导入,如果没有就搜索系统目录
提醒:
- 开发时,模块名不要与系统模块文件名重名,否则会由于优先级导致系统模块无法使用
eg:
- 查看模块的内置属性——模块完整路径
__file__
import random
print(random.__file__)
参阅:
1.3 发布模块
1.3.1 制作发布压缩包
- 创建
setup.py
from distutils.core import setup
setup(
name='my_test', # 包名
version='1.0', # 版本
description='', # 描述信息
long_description='', # 完整描述信息
author='', # 作者名
author_email='', # 作者邮箱
url='', # 主页
)
- 构建模块
python3 setup.py build
- 生成发布压缩包
python3 setup.py sdist
1.3.2 安装模块
- 解压
tar -zxvf 文件名.tra.gz
cd 解压后得到的文件夹
- 开始安装
python3 setup.py install
1.3.2 删除模块
- 直接删除安装目录中对应的的模块文件夹
二、包
- 包是一个含多个模块的特殊目录
- 目录下含有一个特殊文件
__init__.py
- 包名的命名方式与变量一致,小写字母+下划线
包 = .py文件(模块)+__init__.py
(特殊文件)
import 包名
可以一次性导入包中的所有模块
2.1 __init__.py
- 指定对外界提供的模块列表
from . import 模块名1
from . import 模块名2
...
from . import 模块名n
更新中......
网友评论