python中_init_文件说明
来源:互联网 发布:威尔数据系统有限公司 编辑:程序博客网 时间:2024/05/22 14:42
转自:http://hi.baidu.com/nkhzj/blog/item/a6f0df00b2c39716728b65f1.html
模块包:
包通常总是一个目录,目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。差不多就像这样吧:
Package1/ __init__.py Module1.py Module2.py Package2/ __init__.py Module1.py Module2.py
我们可以就这样导入一个包:
import Package1
或者调入一个子模块和子包:
from Package1 import Module1from Package1 import Package2import Packag1.Module1import Packag1.Package2
可以深入好几层包结构:
from Package1.Package2 import Module1import Package1.Package2.Module1
大致就这样吧,我觉得,包的精髓应该是在 __init__.py 这个文件之中的。
__init__.py 文件:
__init__.py 控制着包的导入行为。假如 __init__.py 为空,那么仅仅导入包是什么都做不了的。
>>> import Package1>>> Package1.Module1Traceback (most recent call last): File "<pyshell#1>", line 1, in ? Package1.Module1AttributeError: 'module' object has no attribute 'Module1'
我们需要在 __init__.py 里把 Module1 预先导入:
#文件 __init__.pyimport Module1
测试:
>>> import Package1>>> Package1.Module1<module 'Package1.Module1' from 'Module.pyc'>
__init__.py 中还有一个重要的变量,叫做 __all__。我们有时会使出一招“全部导入”,也就是这样:
from PackageName import *
这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:
#文件 __init__.py__all__ = ['Module1', 'Module2', 'Package2']
测试:
>>> from Package1 import *>>> Module2<module 'Package1.Module2' from 'Module.pyc'>
- python中_init_文件说明
- python之_init_.py文件
- python中self、_init_和__name__
- Pycharm中_init_.py文件的作用
- python中的_init_的使用
- python类class中_init_函数以及参数self的简单解释
- [python]对self和_init_的理解
- Python package module AND _init_.py
- 伪知识之了解python中_init_.py的含义及作用持续更新:【内向即失败--王奕君】
- 关于python的_init_()方法的一点解释
- Python文件读取说明
- python的文件操作说明
- Python学习笔记(九)——Python _init_特殊方法和模块
- python中xgboost说明文档
- python基础-生成包、导入模块、包下_init_模块(__all__方法)
- MapObjects 中Worldfiles文件说明
- VC2010 中各文件说明
- WinCE中.def文件说明
- OPENJUDGE 4043 GPA排名系统
- SYS远程连接出错ORA-01031:Insufficient privileges(解决)
- Launcher中 自定义属性的学习
- 关于web开发的中文乱码问题
- jQuery click()函数的作用
- python中_init_文件说明
- NodeJS框架Express的模板视图机制
- 八皇后问题,C++实现
- 正则
- 两个Activity循环跳转
- dynamically load more items to the ListView
- Debug Assertion Failed line:2553
- freebsd 系统升级
- nios ii之流水灯两点注意(QSYS版)