前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(十)python3 只需3小时带你轻松入门——模块与包

(十)python3 只需3小时带你轻松入门——模块与包

作者头像
1_bit
发布2020-10-23 14:32:20
3350
发布2020-10-23 14:32:20
举报
文章被收录于专栏:我的知识小屋

模块 一般情况下,是一个以.py为后缀的文件。使用import导入。我们创建一个py文件,名为myprint,该py文件作为模块,在里面定义一个函数名为myprint:

代码语言:javascript
复制
def myprint():
	print('这是我的print模块')

保存后,在同目录下创建一个py文件,里面使用import导入包,并且使用模块名调用我们刚刚定义的myprint.py文件中的myprint函数。

代码语言:javascript
复制
import myprint
myprint.myprint()

结果为:

在这里插入图片描述
在这里插入图片描述

以上代码导入模块后,使用模块名myprint调用模块中的myprint()函数,调用使用点“.”运算符。

为避免模块名冲突,python引入了按目录组织模块的方法,称之为包。包是含有python模块的文件夹。 包是比模块更大的概念,包包含了模块。 例如当前目录有一个文件夹名为bao,在bao文件夹目录下,有一个py文件,名为module,里面的内容为:

代码语言:javascript
复制
def myMouduleprint():
	print('这是我包里面的Moudule模块')

我们还需要在这个文件夹下新建一个py文件,名为__init__,里面什么都可以不用写。创建完毕后,我们复制这个module.py文件到上级目录。这时,这个文件夹就是一个包,这个包下可以包含多个模块。

这时新建一个py文件,名为main,我们在main里面引入包,并且也引入main.py文件同目录下的module.py模块。

包的引入使用from作为关键字,我们可以理解为from后面接我们接下来要引入的模块来自于那个包,我是在bao文件夹下存放的module模块,并且在bao文件夹下创建了一个__init__文件,这个文件放在文件夹的目录下,则代表这个这个文件夹为包。所以,from后面接我们要引入的模块来自bao这个文件夹(包),我们需要在这个文件夹下引入里面的一个模块,所以使用import,这个模块名为module所以代码写为:

代码语言:javascript
复制
from bao import module

所有代码为:

代码语言:javascript
复制
from bao import module
import module

module.myMouduleprint()

这时我们引入了两个module,一个是从包bao里面引入的module模块,一个是从import引入的相同目录下的module模块。之后使用module调用了里面的myMouduleprint()函数。

为了方便区分层级关系,我们首先修改外面这个模块里面的myMouduleprint()函数显示内容:

代码语言:javascript
复制
def myMouduleprint():
	print('这是我包外面的Moudule模块')

修改完后,我们把main文件运行,查看结果:

在这里插入图片描述
在这里插入图片描述

这个时候就输出的是外面的module模块的函数;这个时候就产生了同名模块冲突的问题,其实在这里两个模块都被引入了进来,但是由于重名的原因,导致module直接调用为最外层的module;我们的包可以很好的解决这种问题,我们修改from 包的引入使模块重命名,我们调用两个模块的函数,代码如下:

代码语言:javascript
复制
from bao import module as md
import module

module.myMouduleprint()
md.myMouduleprint()

运行结果如下:

在这里插入图片描述
在这里插入图片描述

使用包可以很好的区分层级关系,防止重名的问题,虽然这个例子有点牵强的解释了这个特性,但是最主要的是理解包与模块的概念。 包可以包含多个模块,但是模块就是模块,是相对于包来说最小的单位,不可再细化。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档