博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python包和__init__.py文件
阅读量:6604 次
发布时间:2019-06-24

本文共 998 字,大约阅读时间需要 3 分钟。

  在eclipse中用pydev开发python脚本时,当新建一个package时,系统会自动地生成一个空的__init__.py文件。如果把这个文件删掉,那么你会发现包图标自动变为文件夹图标。这是怎么回事呢?

 

        原来在python模块的每一个包中,都必须存在一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的 __init__.py 文件。

       

         一个包是一个带有特殊文件__init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

 

        在python根目录下的帮助文件.chm中是这样描述的:

 

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.

有关__all__ 变量的用法,请参考帮助系统中的6.4.1. Importing * From a Package部分。

本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1606428,如需转载请自行联系原作者

你可能感兴趣的文章
谈一谈网络编程学习经验
查看>>
C Primer Plus (第五版) 第十七章 高级数据显示 编程练习
查看>>
若羽の暗时间——每天发现一点Dark Time
查看>>
工厂方法模式
查看>>
MVC 中的Viwe PageModel的思考
查看>>
修改网卡名称
查看>>
Javascript学习笔记总结
查看>>
Exchange2013 SP1通过 EMS导出及导入PST数据文件
查看>>
Java实现字符串中单词对调
查看>>
Verilog中的VCD(值变转储文件)
查看>>
预览 GitHub 项目里的网页或 Demo
查看>>
我的友情链接
查看>>
Java私塾跟我学系列——JAVA篇 第三章 数组和排序算法
查看>>
微信小程序 - 开发工具界面一览
查看>>
远程连接linux(Ubuntu配置SSH服务)22端口
查看>>
netty与marshalling简单使用
查看>>
优化带来降权得问题九个问题
查看>>
深入了解NTFS for Mac的界面中的五个勾选项 如启用聚关灯搜索
查看>>
ffmpeg遇到inttypes.h找不到
查看>>
mpsl *** 配置
查看>>