模块与包

模块

1.什么是模块

  • 模块是对应于python源代码文件
  • 模块是以**.py**为扩展名的python文件。
  • python中的模块包括模块、第三方模块和用户自定义模块。
  • 通过导入模块,可以使用该模块中的变量、函数和类等。
  • 使用模块,可以将计算任务分解为大小合理 的子任务,并实现代码的重用功能。

2.模块的API

  • 模块化程序设计的基本原则先设计API(即模块提供的函数或类的功能 描述),然后实现API(即编写程序,实现模块函数或类),最后在客户 端中导入并使用这些函数或类。
  • 通过内置函数help(),可以查看Python模块的API。
  • API定义客户端和实现之间的契约。API是一个明确的规范,规定“实现” 的具体功能是什么 。
  • API通常由两部分组成:
    • 可用函数的签名的精确规范。
    • 以及描述函数作 用的非正式自然语言描述。
  • API一般使用表格的形式,描述模块中的变 量、函数和类。
  • 当编写一个新模块时,建议先设计API,然后实现模块 。

3.模块设计的基本原则

  • 先设计API,再实现模块。
  • 控制模块的规模,只为客户端提供需要的函数。实现包含大量函数的模 块会导致模块的复杂性。
  • 在模块中编写测试代码,并消除全局代码
  • 使用私有函数实现不被外部客户端调用的模块函数。
  • 通过文档提供模块帮助信息。

4.为什么使用模块

  • 可以编写大规模的系统程序
  • 控制程序的复杂度
  • 实现代码重用
  • 增强可维护性

5.如何使用模块

模块导入方法一
import 模块1,模块2,···
  • 使用import一次可以导入多个模块,模块间用逗号分隔。
  • 调用模块方式如下:
模块.方法()
模块导入方式二
from 模块名 import 方法/类/对象
  • 用这个方法导入后,调用函数无需“模块名.”前缀,可直接使用。
>>>from random import randint
>>>randint(1,10)
2
-----也可以一次导入多个方法,用逗号隔开------
>>>from random import randint,random
>>>random()
0.9545396343447562
>>>randint(1,10)
2
模块导入方式三
from 模块名 import *
  • 遵循方式二语句的格式,其中通配符“*”指代制定模块中的全部方法。
  • 但若导入文件中存在与导入内容重名的方法、变量或类时,程序执行将会出错。所以方法二更为安全。
>>>from random import *
>>>randint(1,10)
4
>>>random()
0.6584572753461784
>>>randrange(0,10,2)
2

6.创建模块

  • Python模块对应于包含Python代码的源文件(其扩展 名为.py),在文件中可以定义变量、函数和类。
  • 在模块中,除了可以定义变量、函数和类之外,还可 以包含一般的语句,称之为主块(全局语句)。当运 行该模块,或导入该模块时,主块语句将依次执行。
  • Python文件中的每个文件都可以做为一个模块存在,文件名即模块名。

7. 模块的搜索路径

>>>import sys
>>>sys.path #查询路径,临时的
['C:\\Users\\Dell\\Jupy笔记',
 'C:\\Users\\Dell\\Anaconda3\\python37.zip',
 'C:\\Users\\Dell\\Anaconda3\\DLLs',
 'C:\\Users\\Dell\\Anaconda3\\lib',
 'C:\\Users\\Dell\\Anaconda3',
 '',
 'C:\\Users\\Dell\\Anaconda3\\lib\\site-packages',
 'C:\\Users\\Dell\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Users\\Dell\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Users\\Dell\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\Users\\Dell\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\Dell\\.ipython']
  • sys模块的sys.path属性返回一个路径列表 。
  • 使用import语句导入模块时,系统自动从该列表的路径中搜索 模块,如果没有找到,则程序报错。

添加路径

>>>sys.path.append(路径) #添加路径

8.模块的导入顺序

  • 导入模块时,解释器按下列目录搜索路径和文件搜索顺序 查找并导入文件。目录搜索路径为:
    • (1)当前目录。启动交互式Python的目录,或Python主 程序位于的目录。
    • (2)操作系统环境变量PYTHONPATH中指定的目录。
    • (3)Python标准库目录。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值