【Python基础篇】【18.模块和包】(附案例,源码)

发布时间:2023年12月18日

模块和包

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块介绍

		1.如何理解模块
			模块可以看成一个完整的功能非常强的大代码体 使用了模块就相当于你也有这个功能了
			使用模块编程就相当于站在巨人的肩膀上(智能语音 人工智能机器学习......)
		
		2.模块分类
			1>.内置模块
				内置模块就是python自带的可以直接调用的模块
					eg:import time
						time.sleep(3)	让计算机等待三秒再运行
			2>.自定义模块
				自定义模块肯定就是自己写出来的模块了
					eg:	注册功能 登录功能......
			3>.第三方模块
				第三方就是大佬们将已经写好了的发布在网上我们之间直接CV战士即可
					eg:	图像识别	图形可视化 语音识别

		3.模块的表现形式
			1>.py文件(py文件也可以称之为是模块文件)
			2>.含有多个py文件的文件夹(按照模块功能的不同划分不同的文件夹存储)
			3>.已被编译为共享库或DLL的c或C++扩展(了解)
			4>.使用C编写并链接到python解释器的内置模块(了解)

导入模块

导入模块的方式
  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
"""
模块可以分为3种
          第一种: 内置模块 : 他是python解释器自带的不需要下载的 os random json.....
          第二种: 第三方模块: 他是需要下载  pip install  模块名  requests,bs4  ... 30w库 他也是python语言的一大特点
          第三种 : 自定义模块  就是自己编写的代码模块, 其实他就是我们写的一个py文件 import
"""
# 无论是什么模块 都要先导入后使用
# 需求:math模块<内置模块>下 sqrt() 开平方计算
# import 模块名
# 方法一  import 模块名  模块名.功能;
import math
print(math.sqrt(9))  # 返回的数据是一个浮点型

# 方法二 from 模块名 import 功能名  功能名调用  一个模块里面是有很多功能的
from math import sqrt
print(sqrt(9))

# 方法三  from 模块名 import *  * 代表当前模块里面的所有功能
from math import *
print(sqrt(9))


''' 包调用 '''
# 方法一 通过 import 调用
# import 包名.模块名.方法
import mypage.qd_word1  # 先导入包名
import mypage.qd_word2

print(mypage.qd_word1.add(6, 7))
print(mypage.qd_word2.add(7, 9))

# 方法二 from
# from 包名.模块名 import 功能
from mypage.qd_word1 import add
print(add(8, 9))

from mypage.qd_word2 import add
print(add(9, 9))

自定义模块

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。**也就是说自定义模块名必须要符合标识符命名规则。

''' 自定义模块 '''
import qd_word
print(qd_word.func(4, 5))

# 取一个别名
import qd_word as qd
print(qd.func(4, 7))
import qd_word
# import 龙
# print(龙.func(7,6))   可以但是不建议


''' qd_word 文件夹 '''
def func(a, b):
    return a + b

print(__name__)
# 用于测试当前代码的一个实用方法
# 专门用于做当前py文件的测试, 其他文件引用的时候就不会满足 if 判断, 也就不会执行if判断下的逻辑代码
if __name__ == '__main__':  # 他其实就是一个判断语句  = 是赋值,==才是比较
    print(func(4, 6))
    print(__name__)
    print(type(__name__))

# __name__ 他是我们的一个系统变量,也可以说他是一个标识符
# __name__ 他是在我们的当前py文件运行的话 那么他的结果就是 __main__
# __name__ 他是在被其他文件调用的话 那么他的结果就是 文件的文件名


''' 常见错误 '''
#  随机取0到5的整数
import random
print(random.randint(0, 5))  # 他是一个左右都闭合的区间

# 在我们导入模块的是时候它是有找寻顺序
# 1.会从当前项目目录里面进行查找
# 2.是去python解释器里面进行查找(内置,第三方)
# 3.如果都找不到就会报错

#### 不能使用模块名命名文件 ####

模块定位顺序

当导入一个模块,Python解析器对模块位置的搜索顺序是:

  1. 当前目录
  2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
  3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/

模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

注意:自己的文件名不要和已有模块名重复,否则导致模块功能无法使用

模块取别名

# 需求: 运行后暂停2秒打印hello
"""
1. 导入time模块或导入time模块的sleep功能
2. 调用功能
3. 打印hello
"""
# 方法一 import
import time
time.sleep(2)  # # 默认单位是s 秒
print('hello')

# 取别名
import time as ti
ti.sleep(2)
print('hello')

# 方法二 from
from time import sleep
sleep(2)
print('hello')

# 取别名 as 就是取别名的关键字
from time import sleep as sl
sl(2)
print('hello')

  • Python 包 概念 : 包是 Python 模块 Module 的扩展 , 将若干 相关的 Module 模块 组织起来 形成一个 Python 包 , 可以更好地 组织 和 管理 Python 代码 ;

  • 在 Python 包中 可以 定义 变量 / 函数 / 类 等功能 , 并在不同的模块中使用它们 ;

  • 在 Python 中 , 一个模块就是一个 Python 源码文件 , 变量 / 函数 / 类 可以定义在不同的 源码中 , 将这些 源码 统一组织在一个包中 , 可以 更好地 组织 和 管理 Python 代码 ;

  • 除了 自定义 Python 包之外 , Python 还提供了 Python 标准库 和 其他人编写的第三方 Python 包 来扩展 Python 的功能 ;

Python 标准库 包含了许多常用的包和模块 , 如 :

  • os
  • sys
  • datetime
  • math

第三方包可以通过 Python Package Index ( PyPI ) 进行 下载 和 安装 , 如 :

  • numpy
  • pandas
  • Flask

制作包

[New] — [Python Package] — 输入包名 — [OK] — 新建功能模块(有联系的模块)。

[新建] — [python 软件包] — 输入包名 — [OK] — 新建功能模块(有联系的模块)。

注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为。

快速体验
  1. 新建包mypackage
  2. 新建包内模块:my_module1my_module2
  3. 模块内代码如下
# my_module1
print(1)

def info_print1():
    print('my_module1')
# my_module2
print(2)

def info_print2():
    print('my_module2')

导入包

import 导入包 :导入后 , 可以 通过 包名.模块名.功能名 访问指定功能 ;

import 包名.模块名
from 包名.模块名 import 函数名
体验
"""方法1"""
import mypackage.my_module1
mypackage.my_module1.info_print1()

"""方法2"""
from mypackage.my_module2 import info_print2
info_print2()

常用的第三方包

Python 包中包含了很多 Python 模块 , 每个 Python 模块对应一个 Python 源码 , 其中包含了若干功能 ( 函数 ) ;

Python 生态中 , 有很多优秀的非官方的 第三方软件包 , 如 :

  • Pygame : 游戏开发 , 创建游戏界面 / 处理用户输入 / 播放声音 ;
  • OpenCV : 计算机视觉 和 图像处理 , 处理图像和视频 / 进行人脸识别 / 物体检测 ;
  • Scikit-learn : 机器学习 , 提供了各种 机器学习算法 和 数据预处理工具 , 可以用于分类 / 聚类 / 回归等任务 ;
  • TensorFlow / PyTorch : 深度学习 和 人工智能 , 可以创建神经网络模型 / 优化器 / 激活函数等 ;
  • NumPy : 科学计算 和 数值计算 , 可以进行高效的 数组 / 矩阵 数据处理 ;
  • pandas : 数据处理 和 分析 , 可处理 结构化数据 / 时间序列数据 / 缺失值等 ;
  • Matplotlib : 数据可视化 和 绘图 , 如 : 折线图 / 散点图 / 柱状图等 ;
  • BeautifulSoup : Web 爬虫 / 解析 HTML / 解析 XML 文档 ;
  • Requests : 发送 HTTP 请求 / 处理 HTTP 响应 , 可以用于爬取 Web 页面 / 发送 API 请求 ;
  • Flask / Django : Web 开发 , 可以开发 Web 应用程序 / Web 服务器 ;

上面的 Python 包 , 都是由第三方公司或团队开发的 , 可以极大的提升开发效率 ;

安装第三方包

1.使用 pip 命令安装第三方包

在 Python 中使用内置的 pip 程序来安装第三方包 ;

安装第三方包的步骤 :

首先 , 打开 命令行终端

Windows 系统 可以打开 CMD 命令提示符 或者 PowerShell 命令窗口
Mac / Linux 系统 可以打开 Terminal 终端

# 命令 , 安装指定的第三方包
pip install 包名

# 例如 - 要安装 numpy 包 , 可以输入以下命令 , 使用了 pip 命令来安装 numpy 包
pip install numpy
2.指定第三方包安装版本
# 如果想要安装 第三方包 , 可使用 ==
pip install 包名==版本号

# 安装 1.19.3 版本的 numpy 版本号
pip install numpy==1.19.3
3.设置代理安装
# 默认的 pip 程序运行时从国外的网站统一下载安装, 如果下载速度很慢, 可以使用代理a安装。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
文章来源:https://blog.csdn.net/weixin_43612602/article/details/134954905
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。