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

包
【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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号