You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python运行时获取内置及第三方包函数的注解

获取内置/第三方包函数的注解方法

内置函数或部分第三方库函数(尤其是C实现的)通常不会在运行时的__annotations__属性中包含注解,这类注解一般存放在**类型存根文件(.pyi)**中,以下是几种在Python运行时获取这些注解的实用方式:

1. 使用typing.get_type_hints()

这是最便捷的方法,它会自动查找目标函数对应的类型存根,解析并返回完整的注解信息,支持内置函数、第三方库函数和自定义函数。

示例代码:

from typing import get_type_hints

# 获取str.split方法的注解
split_hints = get_type_hints(str.split)
print("参数注解:", {k: v for k, v in split_hints.items() if k != 'return'})
print("返回值注解:", split_hints['return'])

2. 利用inspect.signature()解析签名

inspect模块的signature()方法会自动加载类型存根,生成包含注解的函数签名对象,可从中提取参数和返回值的注解。

示例代码:

import inspect

# 获取list.append的签名
append_sig = inspect.signature(list.append)
# 提取参数"object"的注解
print("参数object的注解:", append_sig.parameters['object'].annotation)
# 提取返回值注解
print("返回值注解:", append_sig.return_annotation)

3. 手动读取类型存根文件

如果需要更灵活的处理,可以直接读取对应模块的类型存根文件(通常是.pyi格式)。标准库的存根一般位于Python安装目录下的Lib/typeshed/stdlib路径,第三方库的存根可能在包的stubs目录,或单独的types-<package>包中(需通过pip安装)。

注意事项

  • 确保类型存根已存在:标准库的类型存根在Python 3.8及以上版本默认包含;第三方库如果没有自带存根,需要安装对应的types-*包(例如pip install types-requests)。
  • 部分极老的第三方库可能没有官方类型存根,这种情况下无法通过上述方法获取注解,只能参考文档或自行定义。

内容的提问来源于stack exchange,提问作者Mohit Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:02:09