【python基础之包介绍】---包
1.【python入门之相关语言了解】---开发语言与其他2.【python入门之pycharm篇】--如何安装pycharm以及如何安装python解释器3.【python工具指南】pycharm相关快捷键---windows+mac合集4.【python入门之pip换源问题】---pip换源的方式5.【python小记】---PE8规范简述6.【python入门之虚拟环境与系统环境】---虚拟环境的创建方式及使用7.【python入门之常量与变量】---常量与变量小记8.【python入门之基本数据类型的学习】---基本数据之数字类型9.【python入门之基本数据类型的学习】---基本数据类型(列表、字符串)【二】10.【python入门之基本数据类型】---基本数据类型(字典、布尔)【三】11.【python入门之基本数据类型】---基本数据类型(元组、集合)【四】12.【python入门之程序与用户交互】---程序与用户交互13.【python入门之基本运算符】---基本运算符14.【python入门之流程控制语句】---流程控制语句15.【python入门之垃圾回收机制】---python 垃圾回收机制16.【python入门之文件操作】---文件操作17.【python入门之文字符编码】---字符编码18.【python基础之可变和不可变数据类型】---python之栈的介绍19.【python基础之可变和不可变数据类型】--- python之堆的介绍20.【python基础之可变和不可变数据类型】--- python堆栈的相关应用21.【python基础之数据类型的内置方法】--- 数据类型的内置方法22.【python入门之深浅拷贝】---python 深浅拷贝23.【python入门之异常处理】---python 异常处理24.【python基础之函数】--- 函数入门25.【python基础之命名空间与作用域】---命名空间与作用域26.【python基础之函数对象和闭包】 --- 函数对象与闭包27.【python基础之装饰器】---装饰器28.【python基础之迭代器】 --- 迭代器29.【python基础之三元表达式】--- 三元表达式30.【python基础之列表生成式】---列表生成式31.【python基础之生成器】---生成器32.【python基础之模块介绍】---模块
33.【python基础之包介绍】---包
34.【python扩展之软件开发目录规范】---软件开发目录规范35.【python常用模块之OS模块简介】---OS模块36.【python常用模块之random模块简介】---random模块37.【python常用模块之time时间模块】---时间模块(time/datetime)38.【python常用模块之subprocess模块】---subprocess模块39.【python常用模块之sys模块】---系统模块(sys)40.【Python常用模块之logging模块】---日志输出功能(示例代码)41.【python--- ATM+SHOPPING】42.【python基础之面向对象介绍】--- 面向对象43.【python基础之面向对象的绑定方法与非绑定方法】--面向对象的绑定方法与非绑定方法44.【python网络编程相关】 ----操作系统相关了解45.【python之DRF学习】DRF入门了解46.【python之DRF学习】三大方法之认证47.【python之接口工具】利用docker-compose搭建Yapi48.【python之DRF学习】drf全局异常49.【python之DRF学习】 drf之接口文档介绍及使用50.【python之DRF学习】drf之jwt使用包
【1】什么是包
简介
- 包是一个模块的集合,它可以将多个模块的功能组合到一起。
- 包可以按照其功能和作用进行分类,方便用户查找和使用。
- 包是在Python标准库中定义的一种特殊类型的模块,可以通过import语句来引入和使用。
- Python的包分为标准库包和第三方库包。
- 标准库包是Python内置的包,包含了一些基本的模块和函数,如os、sys、random等;
- 第三方库包是第三方开发的包,通常提供了更加丰富和高级的功能。
【2】包结构
- 包是Python程序中用于组织模块的一种方式。包是一个包含模块的目录,同时还可以包含其他子包。
- 要创建一个包,我们只需要在目录中创建一个名为
__init__.py
的文件即可。
|-pakageName
|-__init__.py
|-moduleName1.py
|-moduleName2.py
|-...
- 注意: 包路径下必须存在
__init__.py
文件。
【3】创建包
- 我们创建一个 cal 的包,包中有一个计算器的 model ,结构如下:
|-package_test
|-__init__.py
|-calc.py
- calc.py
def add(a, b):
return a + b
def reduce(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
return a / b
【4】直接使用包
(1)语法
- Python 包的使用和模块的使用类似,下面是导入的语法:
import 包名.包名.模块名
(2)演示
- 比如我们在
use_cal.py
中导入calc.py
# 导入包
import package_test.calc
# 使用包的模块的方法
print(cal.calculator.add(1,2))
【5】详细使用包
(1)语法
- 但是导入调用的时候报名比较长,这样就可以使用from ... import ...语句来简化一下。
from 包名.模块名 import 模块中的方法
(2)使用
- 在
use_cal.py
中导入calculator.py
from package_test import calc #导包
print(calc.add(5,6)) #使用导出来的包里的模块方法
【6】制作包
(1)注册包
- 在包下的
__init__.py
中注册相关变量 __init__.py
# 注意这里要用相对路径
# 从 calculator.py 中将需要导出的方法导入到这里
from .calc import add,reduce
(2)使用包
use_cal.py
# 将注册在 __init__.py 中的方法导入过来
from calc import add,reduce
# 使用包的模块的方法
print(add(2, 5))
【扩展】绝对路径和相对路径
- 在Python中,路径分为相对路径和绝对路径。
【1】相对路径
- 相对路径是相对于当前工作目录或当前脚本文件所在目录的路径。
- 使用相对路径时,你指定的路径是相对于执行脚本的当前工作目录的。
# 例如,假设当前工作目录是 '/Users/username/projects',你可以使用相对路径如下:
relative_path = 'data/file.txt'
【2】绝对路径
- 绝对路径是文件或目录在文件系统中的完整路径,不依赖于当前工作目录。
- 使用绝对路径时,你指定的路径是从文件系统的根目录开始的。
# 例如,绝对路径可能是:
absolute_path = '/Users/username/projects/data/file.txt'
【3】案例说明
- 假设有以下文件结构:
project/
|-- scripts/
| |-- my_script.py
|-- data/
|-- file.txt
(1)相对路径
- 如果
my_script.py
中需要访问file.txt
,可以使用相对路径
# my_script.py
relative_path = '../data/file.txt'
with open(relative_path, 'r') as file:
content = file.read()
print(content)
- 在这个例子中,
'../data/file.txt'
是相对于my_script.py
所在目录的相对路径。
(2)绝对路径
- 如果使用绝对路径
# my_script.py
absolute_path = '/Users/username/projects/data/file.txt'
with open(absolute_path, 'r') as file:
content = file.read()
print(content)
- 在这个例子中,
'/Users/username/projects/data/file.txt'
是文件系统的绝对路径。
本文来自博客园,作者:Unfool,转载请注明原文链接:https://www.cnblogs.com/queryH/p/17909051.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!