【python基础之包介绍】---包

image

【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

image

【4】直接使用包

(1)语法

  • Python 包的使用和模块的使用类似,下面是导入的语法:
import 包名.包名.模块名

(2)演示

  • 比如我们在 use_cal.py 中导入 calc.py
# 导入包
import package_test.calc
# 使用包的模块的方法
print(cal.calculator.add(1,2))

image

【5】详细使用包

(1)语法

  • 但是导入调用的时候报名比较长,这样就可以使用from ... import ...语句来简化一下。
from 包名.模块名 import 模块中的方法

(2)使用

  • use_cal.py 中导入 calculator.py
from package_test import calc #导包

print(calc.add(5,6)) #使用导出来的包里的模块方法

image

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

image

【扩展】绝对路径和相对路径

  • 在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' 是文件系统的绝对路径。
posted @   Unfool  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示