当前位置: 首页 > 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.xdnf.cn/news/1313317.html

相关文章:

  • 《WINDOWS 环境下32位汇编语言程序设计》第2章 准备编程环境
  • 深入剖析 TOTP 算法:基于时间的一次性密码生成机制
  • IOMMU多级页表查找的验证
  • 【计算机网络架构】混合型架构简介
  • 39.离散化与哈希
  • 模型训练监控:TensorBoard与Weights Biases (WB) 使用详解
  • 《A Practical Guide to Building Agents》文档学习
  • 写一个linux脚本,要求实现查找9010端口,如果端口存在则kill,否则不处理,返回对应的提示
  • 24. async await 原理是什么,会编译成什么
  • Linux系统top命令详细指南
  • 安卓11 12系统修改定制化_____如何去除安卓11 12的系统签名验证
  • 基于Transformer的机器翻译——模型篇
  • 《后室Backrooms》中文版,购物误入异空间,怪物追逐,第一人称冒险逃生
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • 服务器配置开机自启动服务
  • 线程池与异步编程——语法归纳
  • 存算分离与云原生:数据平台的新基石
  • 机器学习的特征工程(特征构造、特征选择、特征转换和特征提取)详解
  • 探秘gRPC——gRPC原理详解
  • 胶质母细胞瘤对化疗的敏感性由磷脂酰肌醇3-激酶β选择性调控
  • 【CV 目标检测】Fast RCNN模型①——与R-CNN区别
  • 软件需求管理过程详解
  • 11、软件需求工程
  • 基于 LoRA的广义知识蒸馏(GKD)训练
  • Java基础 8.16
  • 一汽红旗7月销量37324辆 同比增长21.1%
  • ESP32 C3 开发板使用教程 01-测试显示屏
  • k8sday08深入控制器(3/3)
  • 【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践00