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 11 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python函数声明和调用定义及原理详解
Dec 02 Python
Python变量作用域LEGB用法解析
Feb 04 Python
python3 字符串知识点学习笔记
Feb 08 Python
Python中Selenium库使用教程详解
Jul 23 Python
Django权限控制的使用
Jan 07 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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 setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
python request 模块详细介绍
2020/11/10 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
英语专业应届生求职信范文
2013/11/15 职场文书
幼儿生日活动方案
2014/08/27 职场文书
新郎新娘答谢词
2015/01/04 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书