首页 > 解决方案 > 如何获取函数参数类型?

问题描述

例如我有foo(...)

def foo(arg1: str, arg2: int, ...):
    ...

我想得到这个:

{'arg1': str, 'arg2': int, ...}

如果有人知道答案,请与我分享。

标签: pythonpython-3.xfunctiontypesarguments

解决方案


这可以通过__annotations__Python 版本 >= 3.0 的函数对象的属性来访问:

type_annotation_dict = foo.__annotations__

这应该直接导致字典将参数名称映射到它们的类型注释:

{'arg1': str, 'arg2': int}

另见PEP 3107

此外,typing标准库模块具有get_type_hints提供一些附加功能的功能。有关更多信息,请参阅有关此函数的 Python 文档


推荐阅读