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

Python函数get_token()可打印token_value却返回None问题排查

问题分析:为何get_token()打印token_value后却返回None?

问题出在处理空格的分支逻辑里:

if string[0] == " ":
    cursor += 1
    get_token()
    return

当遇到空格时,你递归调用了get_token(),但没有把递归调用的返回值传递出去,而是直接执行return——这会导致当前get_token()函数实例没有返回任何值(即返回None),而递归调用生成的正确返回结果被直接丢弃了。

修复方法很简单,把递归调用改为返回它的结果:

if string[0] == " ":
    cursor += 1
    return get_token()

修复后运行代码,就能得到正确的返回值。比如处理字符串里的空格时,递归调用的get_token()会返回后续的token,这个结果会被当前函数传递出去,不会再出现返回None的情况。

另外补充:当前代码里的has_more_tokens()判断可以在递归前再做一次校验,但核心问题就是递归时未返回结果。

内容的提问来源于stack exchange,提问作者Kyle Angelo Gonzales

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:20:22