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设计模式编程之桥接模式的运用
Mar 02 Python
python爬取51job中hr的邮箱
May 14 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python3.5装饰器典型案例分析
Apr 30 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
python操作yaml说明
Apr 08 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
python基础详解之if循环语句
Apr 24 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遍历数组的几种方法
2012/03/22 PHP
分享php邮件管理器源码
2016/01/06 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
Python 异常处理实例详解
2014/03/12 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python切图九宫格的实现方法
2019/10/10 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
简单的项目建议书模板
2014/03/12 职场文书
任命书范本大全
2014/06/06 职场文书
党员倡议书
2015/01/19 职场文书
国家助学金感谢信
2015/01/21 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
PHP 时间处理类Carbon
2022/05/20 PHP