关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

当前位置 : 首页 » InfoTech » Python的模块和包 正文

Python的模块和包

InfoTech / by: 麦新杰 / 发布:2017年1月30日 / 8次阅读 / 暂无评论
标签:我用Python   / 最后修改时间: 2017-01-30 22:00:00

InfoTech / 2017年1月30日 / 8次阅读 / 标签:我用Python  

拍拍贷
featured image

刚开始学习python的时候,就接触了模块的概念,一个.py文件就是一个模块,当时最先研究的问题尽然是如何对模块进行reload操作

模块我们使用module这个英文单词;我们用package来代表包这个概念。

现在来说说package,package就是将一组module组合在一起

写代码的时候,通过模块,我们可以很好的重用一些代码段,但是,也不能把所有代码都放在一个模块里面,于是,将多个模块打个包,组合在一起,整体对外提供接口,这就是包。包的另外一个好处还在于,避免名称冲突,只要包与包的名称不一样,内部的模块名称一样没有关系。

import一个模块,如果这个模块里面的代码有可以直接执行的部分,就直接执行了。

包是一个文件夹,import一个包,就是import那个文件夹的名字。只有这个文件夹下面有__init__.py文件存在(可以是空文件),这个文件夹才能被Python当成一个包来对待(没有__init__.py文件,名称不出错,import也不会报错)。因此,也可以这样理解,__init__.py文件就是包执行的代码。我们一般理解为包的初始化部分代码。

包是一个文件夹,包内还可以继续有包的存在,只要有__init__.py。这就是Python包的层次关系,如果把模块一并纳入考虑范围,模块,包,多重包这样一个层次递进的关系非常清晰明了。

包的__init__.py文件可以作为一个初始化程序,将包对外提供的接口展现出来(from...import语句),很多有名的Python第三方包都这样干,比如requests(requests是包文件夹的名字,里面有一个api.py,在__init__.py里面通过from .api import .......实现直接对外提供接口的表述)。

通过pip安装一个第三方的包,其实就是将这个包的所有文件下载到/lib/site-packages目录里面。

 

这里还有一个关键的问题要注意,就是namespace。我理解Python的namespace是以模块为单位的,在一个模块内部存在一个global的namespace,不同模块的namespace相互之间没有任何联系。

-- (*^-^*) --

本文链接:http://www.maixj.net/ict/python-mokuai-bao-14144
云上小悟 麦新杰(QQ:1093023102)

《Python的模块和包》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客