今天看啥  ›  专栏  ›  Python编程时光

在 Python 中如何设计插件化系统?

Python编程时光  · 公众号  ·  · 2024-11-03 19:02
    

文章预览

plug-in 在维基百科中是这么定义的:“在计算中,插件是软件组件,为现有计算机程序增加一个特定的特征。” 所以插件应该是一个能够灵活配置,并很方便的载入配置中的内容。 由于 Python 本身的动态特性,插件化的实现就更灵活。现有的动态插件都是基于 Python 的命名空间和动态导入功能来查找并导入外部依赖。具体原理可以查看 Creating and discovering plugins:https://docs.pytest.org/en/latest/index.html 。 插件框架 pluggy pluggy 是从 pytest 中演化出来的一个插件工具。它为 pytest 提供外围插件支持,当开发人员需要扩展 pytest 的功能时,基于 pytest 的规范做出对应的插件然后将其安装到环境中后, pytest 就可以自动识别已有插件。 其具体原理是通过创建一个 hookspec = pluggy.HookspecMarker("eggsample") 来标记插件事先的规范,然后使用 hookimpl = pluggy.HookimplMarker("eggsample" ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览