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 基础学习第二弹 类属性和实例属性
Aug 27 Python
深入理解Javascript中的this关键字
Mar 27 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python学习思维导图(必看篇)
Jun 26 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
python批量下载抖音视频
Jun 17 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
Python中Selenium模块的使用详解
Oct 09 Python
Python机器学习之基础概述
May 19 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
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
Vue 报错TypeError: this.$set is not a function 的解决方法
2018/12/17 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
在Python的web框架中配置app的教程
2015/04/30 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
大学毕业生工作的自我评价
2013/10/01 职场文书
大学生求职简历的自我评价
2013/10/21 职场文书
教师找工作推荐信
2013/11/23 职场文书
2014庆六一活动方案
2014/03/02 职场文书
党员领导干部承诺书
2014/05/28 职场文书
银行进社区活动总结
2014/07/07 职场文书
歌剧魅影观后感
2015/06/05 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书