十二、模块与包

一、 模块(Module)

1. 概念

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

a.py 文件,称之为 模块a

2. 模块间的调用

  • import 关键字

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

    import save
  • 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
    import aa
    import bb
    import cc

    或者:

    1
    import aa, bb, cc
  • 导入多个标识符

    1
    from aa import func1,var1,func2,var2
  • 导入模块中的所有标识符

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

二、 包(Package)

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()

三、 库

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

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 的网站 。

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