包的概念 | 学习笔记

简介: 快速学习包的概念

开发者学堂课程【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 文件。如果有已经写好了的包,就可以直接运用。

相关文章
|
Java Apache
阿里Java开发手册一方库/二方库/三方库等概念详解
阿里Java开发手册一方库/二方库/三方库等概念详解
1959 0
|
7天前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
17 0
|
6月前
|
数据安全/隐私保护 Python
详解python中的类、模块、包的概念和区别
详解python中的类、模块、包的概念和区别
206 0
详解python中的类、模块、包的概念和区别
|
存储 数据可视化 Ubuntu
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
|
机器学习/深度学习 数据可视化 数据挖掘
【学习】代码里引入的包都是啥东西
【学习】代码里引入的包都是啥东西
164 0
|
存储 开发工具 芯片
基础概念:模拟器概念及其配置方法|学习笔记
快速学习基础概念:模拟器概念及其配置方法
基础概念:模拟器概念及其配置方法|学习笔记
|
安全 程序员 Go
包的引出和使用原理|学习笔记
快速学习包的引出和使用原理
包的引出和使用原理|学习笔记
|
Scala 开发者
包对象注意事项和细节说明|学习笔记
快速学习包对象注意事项和细节说明。
包对象注意事项和细节说明|学习笔记
|
Java 程序员 Scala
包对象的介绍和底层机制|学习笔记
快速学习包对象的介绍和底层机制。
包对象的介绍和底层机制|学习笔记
下一篇
无影云桌面