包的概念 | 学习笔记

简介: 快速学习包的概念

开发者学堂课程【Python 入门 2020年版:包的概念】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10365


包的概念

内容介绍:

一、包的介绍

二、导入包的方式

三、_init_.py 文件

 

一、包的介绍

包的使用

一个模块就是一个 py 文件,在 Python 里为了对模块分类管理,就需要划分不同的文件夹。

多个有联系的模块可以将其放到同一个文件夹下,为了称呼方便,一般把 Python 里的一个代码文件夹称为一个包。

例如,新建一个名为 chat 的文件夹,在文件夹种建立两个名为 recv_msg.py 和 send_msg.py 的文件,这两个的功能是类似的,它们共同组成一个聊天,进行打包形成一个文件夹。

这个文件夹在 python 种就叫包。

在 send_msg.py 文件中写入  x=’我是 send_msg 里的变量 x’

在 recv_msg.py 文件中写入  y=’我是 recv_msg 里的变量 y’

 

二、导入包的方式

如何将 chat 里的文件导入到 04- 包的使用文件?

方式一:在 04- 包的使用文件中加入以下代码

from chat import recv_msg

print(recv_msg.y)

运行后的结果为:

注意在写代码的时候,from 后有一部分是模块,有一部分是包(是包的话可以从包里导入模块)

方式二:在 04-包的使用文件中加入以下代码

from chat import recv_msg

from chat.send_msg import x

print(recv_msg.y)

print (x)

运行后的结果为:

image.png

导包的方法很多,很灵活。可以从包里导入一个模块,也可以从包里的模块导入一个变量。

对包的使用了解即可,一般是用系统的包来导入或第三方的包导入,不会自己写一个包进行导入,比如之前课程中的 import.json ,在软件中输入后,点击 json 后会进入 json 的页面,定位 json 会到一个文件夹位置。

总之,包可以将多个具有相似或者有关联的多个模型放到一个文件夹里,便于统一管理,这个文件夹就叫做包。

 

三、_init_.py 文件

在 python 包里,会有一个 _init_.py 文件

image.png

刚刚在新建文件夹的时候,使用到的是 Directory。除此之外,还有一个 Python Package ,这也是个包。

那么这两个间的区别是在于后者中会生成一个 _init_.py 文件,而前者没有。

但如果在 Directory 文件中加入 _init_.py 文件,那么原来的 Directory 文件夹会自动转换成 Python Package 包的形式

_init_.py 文件能够写的文件是非常的复杂,在这不做讲解,若有兴趣,可以在系统里内容。在 json 文件中可以看到关于 _init_.py 会写到特别多复杂的语句。

这里可以导入很多东西,比如 import copy、import flask,都是一个包,在 flask中又导入了其他包的模块。

包里面的工作是把 _init_.py 文件导入其他的模块,也就是说可以在 chat\_init_.py文件中导入

from . import send_msg

from . import recv_msg

在 04- 包的使用文件中加入以下代码

from chat import recv_msg

from chat.send_msg import x

import json

import flask

import chat

print(recv_msg.y)

print (x)

print(chat.recv_msg.y)

#可以直接导入 chat 包,一导入这个包,他就会都所涉及到的文件

#不需要自己学会写包,一般都是由第三方的人进行包的提供

#只要记住在 python 中一个 py. 文件就是一个模块,多个文件组成了包,这个包相较于其他文件夹来说会多一个 _init_.py 文件。如果有已经写好了的包,就可以直接运用。

相关文章
|
机器学习/深度学习 人工智能 Cloud Native
高性能深度学习推理平台 OpenPPL 正式开源!
高性能深度学习推理平台 OpenPPL 正式开源!
2465 0
|
3月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
机器学习/深度学习 算法 安全
隐私计算训练营第三讲-详解隐私计算的架构和技术要点
SecretFlow 是一个隐私保护的统一框架,用于数据分析和机器学习,支持MPC、HE、TEE等隐私计算技术。它提供设备抽象、计算图表示和基于图的ML/DL能力,适应数据水平、垂直和混合分割场景。产品层包括SecretPad(快速体验核心能力)和SecretNote(开发工具)。算法层涉及PSI、PIR、数据分析和联邦学习(水平、垂直、混合)。此外,SecretFlow还有YACL密码库和Kusica任务调度框架,Kusica提供轻量化部署、跨域通信和统一API接口。
647 0
|
10月前
|
数据采集 数据挖掘 物联网
Pandas高级数据处理:实时数据处理
本文介绍了如何使用Pandas进行实时数据处理,涵盖从基础到高级的技巧。Pandas作为Python中流行的数据处理库,提供了高效的DataFrame和Series结构,适用于金融、社交媒体和物联网等领域的数据分析。文章详细讲解了数据读取、清洗、转换及常见问题的解决方案,如内存不足、数据不一致和性能瓶颈,并提供了避免常见报错的方法,帮助读者更高效地处理实时数据。
392 15
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
358 2
|
机器学习/深度学习 人工智能 PyTorch
【Deepin 20深度探索】一键解锁Linux深度学习潜能:从零开始安装Pytorch,驾驭AI未来从Deepin出发!
【8月更文挑战第2天】随着人工智能的迅猛发展,深度学习框架Pytorch已成为科研与工业界的必备工具。Deepin 20作为优秀的国产Linux发行版,凭借其流畅的用户体验和丰富的软件生态,为深度学习爱好者提供理想开发平台。本文引导您在Deepin 20上安装Pytorch,享受Linux下的深度学习之旅。
346 12
|
Java Linux C++
boost::io_service解读
boost::io_service解读 asio是boost提供的一个c++异步编程模型库,其核心类io_service,在多线程编程里面提供了任务队列和任务分发功能,在socket、io编程里主要作为一个事件驱动器(完成端口、select、poll、epoll等)。
1870 0
|
JavaScript 开发工具 git
Vite构建的Vue3项目打包部署到Gitee —— 全网最详细系列
Vite构建的Vue3项目打包部署到Gitee —— 全网最详细系列
Vite构建的Vue3项目打包部署到Gitee —— 全网最详细系列
|
SQL Oracle 关系型数据库
一口气说出4种主流数据库ID自增长,面试官懵了
一口气说出4种主流数据库ID自增长,面试官懵了
660 0
一口气说出4种主流数据库ID自增长,面试官懵了