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

posted on 2024-10-04 08:00  荣锋亮  阅读(3)  评论(0编辑  收藏  举报

导航