lazy_loader attach_stub一种变体玩法
此方法在scikit-image包中可以明显看到使用
玩法流程
__init__.py
直接基于attach_stub 进行定义懒加载,以后的使用就同时标准玩法了- 添加
__init__.pyi
进行显示的引入定义,方便实现类型检查以及ide 的自动提示
一个参考玩法
__init__.py
定义
import lazy_loader as lazy
__getattr__, __dir__, __all__ = lazy.attach_stub(__name__, __file__)
__init__.pyi
定义
__all__ = ['applatform_login','platform_login']
from . import platform_login
from .platform_login import applatform_login
- 使用效果
可以看到ide 包含了自动提示能力
说明
通过lazy_loader 的attach_stub ,同时能提供懒加载的能力,还能帮助我们进行类型提示,是比较值得使用的玩法
参考资料
https://github.com/scikit-image/scikit-image/blob/main/skimage/filters/init.py
https://github.com/scikit-image/scikit-image/blob/main/skimage/filters/init.pyi
https://github.com/scientific-python/lazy-loader/blob/main/lazy_loader/init.py#L304