开发者学堂课程【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)
运行后的结果为:
导包的方法很多,很灵活。可以从包里导入一个模块,也可以从包里的模块导入一个变量。
对包的使用了解即可,一般是用系统的包来导入或第三方的包导入,不会自己写一个包进行导入,比如之前课程中的 import.json ,在软件中输入后,点击 json 后会进入 json 的页面,定位 json 会到一个文件夹位置。
总之,包可以将多个具有相似或者有关联的多个模型放到一个文件夹里,便于统一管理,这个文件夹就叫做包。
三、_init_.py 文件
在 python 包里,会有一个 _init_.py 文件
刚刚在新建文件夹的时候,使用到的是 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 文件。如果有已经写好了的包,就可以直接运用。