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在校内发人人网状态(人人网看状态)
Feb 19 Python
Python遍历指定文件及文件夹的方法
May 09 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
python安装教程 Pycharm安装详细教程
May 02 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python绘制规则网络图形实例
Dec 09 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
python绘制高斯曲线
Feb 19 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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 gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
jquery 循环显示div的示例代码
2013/10/18 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
利用aardio给python编写图形界面
2017/08/21 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python matlibplot绘制3D图形
2018/07/02 Python
一看就懂得Python的math模块
2018/10/21 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
简单了解django缓存方式及配置
2019/07/19 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python制作朋友圈九宫格图片
2019/11/03 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python 检测图片是否有马赛克
2020/12/01 Python
请介绍一下Ant
2016/07/22 面试题
三分钟演讲稿范文
2014/04/24 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
委托书的格式
2014/08/01 职场文书
代领毕业证委托书
2014/08/02 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python