__init__.py 的使用

2020-07-19  本文已影响0人  四月白绵羊

在python的模块化中,__init__.py 文件就是模块的入口,它告诉使用者那些功能会被导出和使用。有几种import的方式,每种方式都有它的优点和缺点。

假设一个package中有以下三个模块:
bread.py

def get_bread():
    print('A bread.')

coffee.py

def get_coffee():
    print('A cup of coffee.')

milk.py

def get_milk():
    print('Some milk.')

1. Wild import

如果我们的 __init__.py 是以下的样子:

from .bread import *
from .coffee import *
from .milk import *

那么三个模块中的所有方法或变量都会暴露给外界。使用如下:

import grocery
grocery.get_bread()

总结一下这种模块化的优缺点:

优点
缺点

2. Explicit import

如果我们的 __init__.py 是以下的样子:

from .bread import get_bread
from .coffee import get_coffee
from .milk import get_milk

使用这种方法可以只导入你想要暴露的内容。

优点
缺点

3. Export modularly

如果我们的 __init__.py 是以下的样子:

from .bread import get_bread
from .coffee import get_coffee
from .milk import get_milk

如果使用这种方法定义导出的内容,就可以保留package中的模块结构。

import grocery

grocery.bread.get_bread()
优点
缺点
上一篇下一篇

猜你喜欢

热点阅读