Python_包

1.包的概念以及建立包的方式

 

Python中的包,所谓包,就是一个特殊的目录,在这个目录下包含有多个模块,一个独立的Python文件,就是一个模块,在这个目录下包含有多个独立的Python文件,为什么说是特殊的目录呢?在包的目录下必须要包含一个特殊的文件,__init__.py, 而这个文件名必须叫做__init__.py,所谓包,就是在一个目录下包含一个__init__.py的python文件,再包含有多个模块文件共同就组成了一个包.

 

同时在开发中如果要给包起名字,也就是给这个特殊的目录命名, 那么命名方式跟之前学习的变量名的命名方式是完全一样的,使用小写字母加下划线的方式,当然也可以使用数字,但是呢,需要注意不要以数字开头.

 这个就是Python中包的概念.

包有什么好处啊,既然包含有多种模块,那么应该可以使用import 包名的方式,一次性的把包中所有的模块全部导入,这个就是包的好处.

介绍一下包的概念之后,接下来就做一个简单的案例,

 

先建立一个hm_message的包,一个跟消息相关的包.

用两种方式演练一下,怎么样来建立一个包,要建立包, 包是一个目录,那么就可以选中项目, 点击右键,

 

然后呢,在弹出的菜单中啊,来选择第3项,大家看第3项是目录,

 

现在就选择directory,然后呢,给这个目录起个名字, hm_message,然后回车,

回车之后, 项目中多了一个目录,

现在这个目录不是包的目录, 包的目录下必须要有一个特殊的文件,__init__.py.

现在就选中这个目录点击右键,然后呢在弹出的菜单中选择Python file,

 

现在就给这个文件起个名字,回车,

 

这样一个包就已经建立完了,一个目录加上__init__.py文件,现在还没有在包中增加文件,但是一个包的基本结构已经有了,

 

这个就是使用目录来建立一个包的方式.

那现在把这个包选中, 点击右键, 来选择删除,把这个包先做一个删除,

 

 

介绍另外一种方式,还是先选中项目, 点击右键,

 

然后呢,在弹出的菜单中,在目录下方有个Python Package的包,

 

点击之后提示输入包的名字,

 

那就写个hm_message,然后呢,点击回车,

 

回车之后会自动建立一个目录,同时在目录下方建立了一个__init__.py的python文件,

 

那这个文件中包含有什么内容呢?双击查看一下,这个文件中空空如也, 没有任何的内容,

 
 

2. 封装模块, 设置__init__ 和外界导入包

接下来就继续上一小节的案例演练,现在已经准备好了一个hm_message的包,

 

而在一个包中是可以包含多个模块的,现在就在这个包中新建两个文件,一个send message,一个receive message,然后呢,在发送消息这个模块中,封装一个send函数,在接收消息这个模块中封装一个receive函数, 一个发送一个接收.

 

当所有准备工作完成之后,就在外部来通过导入包名的方式, 看能不能使用到这两个模块中封装的函数,

 

目的明确之后, 要想在包中建立文件,首先要选中这个目录,然后点击右键,在弹出的菜单中, 就选择python file,

 

现在先给发送消息起个名字send message, 回车,

 

一个Python文件建立完成,

 

现在要建立另外一个文件,同样先选中这个目录,点击右键,

 

然后选择新建, 再来找到python file,

 

就给文件起个名字receive message,回车,

 

两个Python文件建立完成,

 

现在就找到send message这个文件,

 

在文件中封装一个send函数,使用def这个关键字来封装一个send函数,同时呢,给它增加一个参数text,让他发送一个文本字符串,就使用print函数做个输出, 正在发送,把这个形参text做一个输出,一个简单的发送函数定义完成,

 

那现在再切换到接收消息这个文件,在接收消息文件中, 来定义一个接收消息的函数,然后给函数起个名字,receive这个函数呢,不让他接受任何的参数,但是让它返回一个结果,返回一个字符串,

 

一个发送函数,一个接收函数全部准备完成,一个包目录,

 

一个__init__.py的文件,

 

接收消息的文件,

 

发送消息的文件,

 

全部准备完成,那现在就找到hm_10_导入包这个文件,

 

在这个文件中,

 

来尝试一下能不能通过包名导入,并且看一看能不能使用刚刚封装的两个函数,

 

那现在使用import关键字,跟上一个包名, 包名是有智能提示的,

 

我们就回车选中hm_message,

 

 选中之后呢,我们输入包名点, 看看会有什么,智能提示并没有希望看到的发送消息和接收消息,

 

__init__.py 这个文件是一个非常特殊的文件, 如果希望在外界使用包的模块,那么就需要在__init__.py中指令一下对外界提供的模块列表,

 

那具体的指定方式就是, 使用from.import的方式来指定一下模块名称就可以.

from点是表示从当前目录下导入, 导入什么呢,希望外界使用哪个模块,就在import 的后面跟上哪一个模块名就可以,现在演练一下,现在再找到__init__.py这个空的文件, 先在这里使用from点import,从当前目录下导入, 先导入一个send message,

 

把发送消息这个模块做了一个导入, 那加了这句代码之后,赶紧切换到导入包这个文件,

现在如果再敲点, send message已经有了,

 

回车选中这个模块,再敲一个点, send(text),能够接受一个文本参数, 那现在就写个哈喽,

 

运行一下这个程序,看看执行效果,控制台输出了正在发送,

 

刚刚__init__.py中增加了一个send message模块,就可以在外界通过包名点的方式使用这个模块了.

导入模块之后,

 

再切换到演练的文件,receive_message这个模块也看到了,

 

那现在就选中这个模块再敲一个点,receive这个函数也看到了,

  

就选中receive函数,然后这个函数有一个返回值,就在前面定一个变量txt, 接收一下,返回结果, 紧接着就使用print函数做个输出,把text输出在控制台,

 

代码写完, 现在运行一下程序,

 

经过一个简单的演练之后,如果在开发中啊,希望把多个相关联的模块进行打包,那么我们就可以创建一个package,也就是包, 创建了包之后,可以在__init__这个特殊文件中, 使用from点import 的方式,把希望外界能够使用的模块逐一导入,导入之后,在外界需要使用这个包的时候,只需要import一下包名,然后通过包名点模块名点,然后就可以访问到各个不同模块中提供的工具了,这个就是在Python中包的使用.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值