模块与包

模块与包

1. 模块(Module)

1.1 概念

在 Python 中,一个代码文件(也就是一个 .py 文件)就叫做 模块
a.py 文件,称之为 模块 a

1.2 模块间的调用

1.2.1import关键字

1
2
3
# 通过 import 关键字 导入模块 save

import save

1.2.2 from...import...关键字

通过 from import 关键字导入其他模块里面的标识符(包括变量名和函数名)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 从 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)

1.2.3 导入多个其他模块

1
2
3
import aa
import bb
import cc
1
import aa, bb, cc

1.2.4 导入多个标识符

1
from aa import func1,var1,func2,var2

1.2.5 导入模块中的所有标识符

  • * :代表可以导入的标识符(包括 变量名、 函数名等)
1
from aa import *

2. 包(Package)

2.1 定义

我们把存放模块文件的目录,称之为
目录中,需要有一个名为 _init_.py 的初始化文件 。
_init_.py 文件 通常为 空文件 ,当文件中有内容时,在包被调用时就会执行。

商城产品目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
...

调用时:

1
2
3
import stock.food.beef
# 注意导入的是 stock.food.beef,调用的时候一定要加上所有的包路径前缀
stock.food.beef.stockleft()

或者

1
2
from stock.food.beef import stockleft
stockleft()

3. 库

:只要是 某个模块 或者 一个模块 ,开发它们的目的 就是给 其他模块调用的,就可以称之为 库。

3.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 等

3.2 第三方库

在 Python 中,安装 第三方库 ,通常使用 pip 命令 。
这些优秀的 第三方库 基本都放在一个叫 PYPI 的网站 。

1
pip install requests

国内镜像站: 豆瓣 镜像备份 (-i https://pypi.douban.com/simple/)作为安装包的下载地址

1
pip install requests -i https://pypi.douban.com/simple/

如果 pip 安装库出现 SSL 错误,可能是网络对 https 证书效验 的问题,可以改用 http 协议 下载

1
pip install requests -i http://pypi.douban.com/simple/  --trusted-host pypi.douban.com