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 相关文章推荐
在Django框架中编写Contact表单的教程
Jul 17 Python
浅谈对yield的初步理解
May 29 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 Python
python3中numpy函数tile的用法详解
Dec 04 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
无阻塞加载脚本分析[全]
2011/01/20 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
python开发之thread线程基础实例入门
2015/11/11 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python猴子补丁知识点总结
2020/01/05 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
python excel多行合并的方法
2020/12/09 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
企业门卫岗位职责
2013/12/12 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
新年晚会主持词
2014/03/24 职场文书
中国梦口号
2014/06/13 职场文书
我的中国心演讲稿
2014/09/04 职场文书
小升初自荐信范文
2015/03/05 职场文书
销售员自我评价
2015/03/11 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
2019新员工心得体会
2019/06/25 职场文书