Python 3 嵌套函数关键字参数层级管理及自动提示工具问询
Python多层嵌套kwargs透传的自动文档生成方案
针对多层函数透传关键字参数需要自动维护文档的需求,现有多个成熟工具可以实现,具体可选方案如下:
- 类型标注结合静态文档生成工具
Python 3.11及以上版本可以使用typing.Unpack结合TypedDict明确标注上层函数允许的关键字参数结构,示例代码如下:
完成标注后,使用pdoc、Sphinx搭配from typing import TypedDict, Unpack, NotRequired # 定义fun_A支持的所有关键字参数 class FunAParams(TypedDict): b: int # fun_B的必填参数 c: NotRequired[str] # fun_C的可选参数,默认值为some_default_value def fun_A(a, **kwargs: Unpack[FunAParams]): ... fun_B(**kwargs) ...sphinx-autodoc-typehints扩展,即可自动提取参数的必填/可选属性、默认值等信息生成文档,同时PyCharm、VS Code等IDE也会直接给出参数补全提示。 - 自动Docstring生成工具
VS Code的autoDocstring扩展、命令行工具pydocstringformatter都支持自定义扫描规则,会自动递归识别当前函数调用的所有子函数参数,自动将必填参数、可选参数、对应默认值补充到函数docstring的kwargs部分,支持谷歌、NumPy、reST等主流docstring格式。 - 专门的kwargs透传分析工具
轻量工具kwargstodoc可以递归扫描函数内部的kwargs传递路径,不管嵌套多少层都能准确收集所有下游函数需要的参数、类型、默认值,直接自动追加到上层函数的docstring中,完全不需要手动维护。
内容的提问来源于stack exchange,提问作者Gwonhak Lee
相关产品推荐
相关产品推荐

