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

针对返回类型与注解不符的Python函数,如何抛出AssertionError?

如何为类型不匹配的函数抛出AssertionError

这很简单,你可以通过assert语句来验证返回值的类型是否符合类型提示的要求,从而触发AssertionError。这里有两种常见的实现方式:

方法一:在函数内部添加断言检查

直接在函数里对返回值的类型做校验,这样只要函数被调用,就会自动执行检查:

def f(x: int) -> str:
    result = 0
    # 断言返回值必须是str类型,否则抛出AssertionError
    assert isinstance(result, str), f"返回值类型错误:预期str,实际是{type(result).__name__}"
    return result

# 调用函数就会触发断言错误
f(10)

执行这段代码时,因为result是int类型,不符合断言条件,就会抛出AssertionError: 返回值类型错误:预期str,实际是int。

方法二:在函数调用处添加断言检查

如果你不想修改原函数,可以在调用后对返回结果做校验:

def f(x: int) -> str:
    return 0

# 调用函数并检查返回值类型
output = f(5)
assert isinstance(output, str), f"函数返回值类型不匹配:预期str,实际得到{type(output).__name__}"

这种方式下,当你调用f(5)得到0(int类型)后,断言会失败,同样触发AssertionError。

补充说明

assert语句的工作逻辑是:如果第一个表达式为False,就会抛出AssertionError,并可选地带上第二个参数作为错误提示信息,这样能让错误原因更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:27:59