12.模块与包
大约 2 分钟学习笔记Python基础
一、 模块(Module)
1. 概念
在 Python 中,一个代码文件(也就是一个 .py
文件)就叫做 模块 。
a.py
文件,称之为 模块 a
2. 模块间的调用
import
关键字# 通过 import 关键字 导入模块 save import save
from ... import...
关键字通过
from import
关键字导入其他模块里面的标识符(包括变量名和函数名)# 从 save 模块 导入标识符 savetofile , # 导入后 savetofile 就成为模块aa中的一个变量,对应一个函数对象 from save import savetofile fee = input('请输入午餐费用:') members = input('请输入聚餐人姓名,以英文逗号,分隔:') # 将人员放入一个列表 memberlist = members.split(',') # 得到人数 headcount = len(memberlist) # 计算人均费用 avgfee = fee / headcount print(avgfee) # 直接使用 savetofile 函数 savetofile(memberlist, avgfee)
导入多个其他模块
import aa import bb import cc
或者:
import aa, bb, cc
导入多个标识符
from aa import func1,var1,func2,var2
导入模块中的所有标识符
*
:代表可以导入的标识符(包括 变量名、 函数名等)
from aa import *
二、 包(Package)
1. 定义
我们把存放模块文件的目录,称之为 包 。
包 目录中,需要有一个名为 _init_.py
的初始化文件 。
_init_.py
文件 通常为 空文件 ,当文件中有内容时,在包被调用时就会执行。
商城产品目录结构:
stock/ # --- 顶层包
__init__.py # --- stock包的初始化文件
food/ # --- food子包
__init__.py
pork.py
beef.py
lobster.py
...
furniture/ # --- furniture子包
__init__.py
bed.py
desk.py
chair.py
...
kitchen/ # --- kitchen子包
__init__.py
knife.py
pot.py
bowl.py
...
调用时:
import stock.food.beef
# 注意导入的是 stock.food.beef,调用的时候一定要加上所有的包路径前缀
stock.food.beef.stockleft()
或者
from stock.food.beef import stockleft
stockleft()
三、 库
库 : 只要是 某个模块 或者 一个模块 ,开发它们的目的 就是给 其他模块调用的,就可以称之为 库。
1. 标准库
Python 提供了 功能丰富的 标准库。标准库可以被直接使用。
标准库中 一部分叫做 内置类型(built-in types)
和 内置函数(built-in functions)
内置类型
和内置函数
无需使用import
导入,可以直接使用- 内置类型:int 、 float 、 str 、 list 、 tuple 等等
- 内置函数:int()、str()、print()、type()、len()等等
- 有些标准库需要使用
import
导入 才能使用- sys 、 os 、 time 、 datetime 、 json 、 random 等
2. 第三方库
在 Python 中,安装 第三方库 ,通常使用 pip
命令 。
这些优秀的 第三方库 基本都放在一个叫 PYPI 的网站 。
pip install requests
下载 第三方库 过慢时 可以使用 豆瓣 镜像备份 (-i https://pypi.douban.com/simple/
)作为安装包的下载地址
pip install requests -i https://pypi.douban.com/simple/
如果 pip 安装库的时候,出现 SSL 错误,可能是网络对 https 证书效验 的为问题,可以改用 http 协议 下载
pip install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com