当前位置: 首页 > news >正文

python---包

文章目录

  • 包的基本概念
  • 创建包的基本结构
  • __init__.py文件
  • 导入包和模块
  • 相对导入(在包内部使用)
  • 导入包和导入模块的区别

包是Python中组织模块的一种方式,它允许你将相关的模块分组在一起,形成一个层次结构。包的主要目的是帮助避免命名冲突,并使代码更有组织性。

包的基本概念

1、包是一个包含__init__.py文件的目录(Python 3.3+中__init__.py不再是必须的,但通常仍会使用)

2、包可以包含子包(子目录)和模块(.py文件)

3、包通过点记法访问,如package.subpackage.module

创建包的基本结构

一个简单的包结构可能如下:

my_package/
│
├── __init__.py          # 包的初始化文件
├── module1.py           # 模块1
├── module2.py           # 模块2
└── subpackage/          # 子包├── __init__.py└── module3.py       # 子包中的模块

init.py文件

init.p文件调用,从父包到子包 。
init.p的__name__为当前文件夹的包名。

这个文件可以有以下作用:

1、标识目录是一个Python包

2、初始化包级别的代码

3、定义__all__列表来控制from package import *的行为

4、可以包含包级别的文档字符串

导入包和模块

# 导入整个包
import my_package# 从包中导入特定模块
from my_package import module1# 从子包中导入模块
from my_package.subpackage import module3# 导入模块中的特定函数/类
from my_package.module2 import some_function

相对导入(在包内部使用)

# 在module3.py中
from .. import module1      # 从父包导入
from . import module4      # 从同一子包导入

导入包和导入模块的区别

包和模块的__name__不同,包的__name__有层次感,如:“my_package.subpackage.module3”

特性模块(Module)包(Package)
本质单个 .py 文件包含多个模块的文件夹(含 init.py)
导入语法import moduleimport package.module
层次结构扁平化嵌套化(支持子包)
init.py不需要必须存在(标识文件夹为包)
http://www.lryc.cn/news/623288.html

相关文章:

  • 一文速通Python并行计算:14 Python异步编程-协程的管理和调度
  • CF每日3题(1500-1700)
  • P2169 正则表达式
  • w嵌入式分享合集66
  • 【Bluedroid】A2DP控制通道UIPC机制深度解析(btif_a2dp_control_init)
  • Java8~Java21重要新特性
  • JAVA面试汇总(四)JVM(一)
  • 028 动静态库 —— 动态库
  • duiLib 实现鼠标拖动标题栏时,窗口跟着拖动
  • Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
  • 分享一个Oracle表空间自动扩容与清理脚本
  • CPP多线程3:async和future、promise
  • MATLAB基础训练实验
  • 超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
  • 深度剖析Redisson分布式锁项目实战
  • 【数据分享】大清河(大庆河)流域上游土地利用
  • AutoDL使用学习
  • K8s核心组件全解析
  • 服务器配置开机自启动服务
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • [CSP-J2020] 方格取数
  • Vue组件生命周期钩子:深入理解组件的生命周期阶段
  • Vue 3.5+ Teleport defer 属性详解:解决组件渲染顺序问题的终极方案
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
  • ESP32-S3_ES8311音频输出使用
  • CSS 核心知识点全解析:从基础到实战应用
  • 探索粒子世界:从基础理论到前沿应用与未来展望
  • 主从复制+哨兵
  • 【论文阅读】Multimodal Graph Contrastive Learning for Multimedia-based Recommendation
  • List容器:特性与操作使用指南