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 21 Python
python生成日历实例解析
Aug 21 Python
python3爬取各类天气信息
Feb 24 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
python实现京东秒杀功能
Jul 30 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
Python多进程编程常用方法解析
Mar 26 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
Python序列化与反序列化相关知识总结
Jun 08 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
深入php处理整数函数的详解
2013/06/09 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JavaScript实现多维数组的方法
2013/11/20 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python中生成Epoch的方法
2017/04/26 Python
python处理按钮消息的实例详解
2017/07/11 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
Python微信操控itchat的方法
2019/05/31 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
人民调解员培训方案
2014/06/05 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js