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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
python梯度下降法的简单示例
Aug 31 Python
python  创建一个保留重复值的列表的补码
Oct 15 Python
Python简单处理坐标排序问题示例
Jul 11 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
Python操作MongoDb数据库流程详解
Mar 05 Python
Python tcp传输代码实例解析
Mar 18 Python
python程序输出无内容的解决方式
Apr 09 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常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
Python实现简易端口扫描器代码实例
2017/03/15 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
文员个人求职自荐信
2013/09/21 职场文书
校园创业策划书
2014/01/14 职场文书
中学家长会邀请函
2014/01/17 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
工作保证书范文
2014/04/29 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
建筑工地质量标语
2014/06/12 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
2014年超市工作总结
2014/11/19 职场文书
2014年终工作总结范本
2014/12/15 职场文书