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解释器的内置模块(了解)
"""
模块可以分为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解析器对模块位置的搜索顺序是:
模块搜索路径存储在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 标准库 包含了许多常用的包和模块 , 如 :
第三方包可以通过 Python Package Index ( PyPI ) 进行 下载 和 安装 , 如 :
[New] — [Python Package] — 输入包名 — [OK] — 新建功能模块(有联系的模块)。
[新建] — [python 软件包] — 输入包名 — [OK] — 新建功能模块(有联系的模块)。
注意:新建包后,包内部会自动创建__init__.py
文件,这个文件控制着包的导入行为。
mypackage
my_module1
和 my_module2
# 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 生态中 , 有很多优秀的非官方的 第三方软件包 , 如 :
上面的 Python 包 , 都是由第三方公司或团队开发的 , 可以极大的提升开发效率 ;
在 Python 中使用内置的 pip 程序来安装第三方包 ;
安装第三方包的步骤 :
首先 , 打开 命令行终端
Windows 系统 可以打开 CMD 命令提示符 或者 PowerShell 命令窗口
Mac / Linux 系统 可以打开 Terminal 终端
# 命令 , 安装指定的第三方包
pip install 包名
# 例如 - 要安装 numpy 包 , 可以输入以下命令 , 使用了 pip 命令来安装 numpy 包
pip install numpy
# 如果想要安装 第三方包 , 可使用 ==
pip install 包名==版本号
# 安装 1.19.3 版本的 numpy 版本号
pip install numpy==1.19.3
# 默认的 pip 程序运行时从国外的网站统一下载安装, 如果下载速度很慢, 可以使用代理a安装。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名