python基础之包的导入和__init__.py的介绍


Posted in Python onJanuary 08, 2018

调用同级目录:

? src 
|? mod.py 
|? test.py

若在程序test.py中导入模块mod, 则直接使用

import mod
或
from mod import *

调用子目录下的模块:

? src 
|? mod.py 
|? lib 
| |? mod2.py 
|? test.py

from lib.mod2 import *

或

import lib.mod2

调用上级目录下的文件

目录结构如下:

? src 
|? mod.py 
|? lib 
| |? mod2.py 
|? sub 
| |? test2.py
import sys
sys.path.append('C:\\test\\A\\C')
import mod
import lib.mod2

__init__.py

在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py 文件。

一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

__init__.py 中还有一个重要的变量,叫做__all__。

如果此时目录如下

? src 
|? mod.py 
|? lib 
| |? mod2.py 
| |? mod3.py 
| |? sub 
| |? | |? mod3.py

我们有时会使出一招“全部导入”,也就是这样:

from lib import *

这时 import 就会把注册在包__init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:

#文件__init__.py
__all__ = ["mod2", "mod3", "sub"]

总结:

对于其余路径下载py文件,要想导入,先加到sys.path中,然后再导入。

__init__.py的作用:

  • package的标识,不能删除
  • 定义package中的__all__,用来模糊导入
  • 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)

总结

以上所述是小编给大家介绍的python基础之包的导入和__init__.py的介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python日期的加减等操作的示例
Aug 15 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python3数字求和的实例
Feb 19 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
python实发邮件实例详解
Nov 11 Python
python中p-value的实现方式
Dec 16 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 Python
Python远程linux执行命令实现
Nov 11 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 #Python
微信跳一跳自动运行python脚本
Jan 08 #Python
python3实现跳一跳点击跳跃
Jan 08 #Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 #Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 #Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 #Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 #Python
You might like
php中几种常见安全设置详解
2010/04/06 PHP
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
php验证session无效的解决方法
2014/11/04 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
使用Python对微信好友进行数据分析
2018/06/27 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python2与Python3的区别点整理
2019/12/12 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
会计主管岗位职责
2014/01/03 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
2015年化验室工作总结
2015/04/23 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫