Python3包中的__init__.py

Python3包中的__init__.py

当我们在创建一个包时,必须在包中新建一个空文件__init__.py,这样才能使别人导入这个包。
当我们要使用包中的某一个模块时,我们就需要在__init__.py中写上__all__=["XXX","YY"],这里的__all__和在上篇博文中提到模块中的__all__用法类似,当别人在导入这个包时,可以选择性的让其可以使用包中哪个模块,不能使用哪个模块。

调用包中模块的方法

第一种:__init__.py中写上__all__=["aa"]
则可以在需要导入这个包中模块的方法使用form 包名 import *或者from 包名 import 模块名(要使用该模块中的方法,就必须将模块名写在__all__列表中),这时可以直接用 (模块名.方法) 来调用需要的模块中的方法。

第二种: 可以不用写form 包名 import *或者from 包名 import 模块名
直接在需要导入的地方写上import 包名,但是这使需要在__init__.py中添加语句:
from . import 模块名(Python2和Python3都适用),符号.表示当前目录,因为在包中的__init__.py中写着,所以指的是当前要导入的包的目录。这时就可以通过 (包名.模块名.方法) 调用包中模块的方法。

注意: 第二种方法中from . import 模块名这种方法Python2和Python3都适用,也可以__init__.py中写成是import 模块名 这时也可以通过(包名.模块名.方法)来调用,但是这种方法只适用于Python2(Python3会出错)

你可能感兴趣的:(Python)