Python之特殊文件__init__.py
1.为什么__init__.py
特殊
__init__.py
文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在
如果
__init__.py
不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。
2.如何使用__init__.py
__init__.py
为空文件
__init__.py
控制着包的导入行为。如果__init__.py
文件为空的话,仅仅是把这个包导入,不会导入包中的模块
__init__.py
中写入__all__
__init__.py
中的__all__
变量,是用来控制from 包名 import *
时导入的模块
模块中使用__all__
属性,则表示只导入__all__
中指定的属性,因此,使用__all__
可以隐藏不想被import
的默认值
Tips:
__all__
变量是一个由string元素组成的list变量。 它定义了当我们使用 from <module> import *
导入某个模块的时候能导出的符号(这里代表变量,函数,类等)
__init__.py
中写入其他内容
可以在
__init__.py
中编写其他内容,在导入时,这些编写的内容就会被执行
可以在__init__.py
中向sys.path
添加当前被调用模块路径。
3.__init__.py
作用
目录中只有包含了叫做
__init__.py
的文件,才能被程序认作是包,模块才能被导入成功