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

Python中仅修改func2实现被调用时计数器累加的方法

解决方案

问题核心是func2每次调用时都会将count初始化为0,导致无法累计所有token的总数。我们可以通过函数属性存储累计值,同时利用atexit模块在程序结束时自动打印最终统计结果,完全满足仅修改func2的要求。

修改后的func2代码如下:

def func2(token):
    import atexit
    # 初始化累计计数器和退出打印逻辑,仅第一次调用时执行
    if not hasattr(func2, 'total_count'):
        func2.total_count = 0
        @atexit.register
        def print_total():
            print(func2.total_count)  # 最终输出总计数4
    nltk_tokens = nltk.word_tokenize(token)
    func2.total_count += len(nltk_tokens)
    # 移除原有的单次调用打印逻辑,避免输出中间值

代码说明

  1. 函数属性total_count:用来跨调用存储累计的token总数,不会在每次调用func2时被重置。
  2. atexit.register:注册一个程序退出时自动执行的函数,负责打印最终的累计结果。
  3. 移除原代码中每次调用都打印当前count的语句,避免输出多个无效的中间值。

运行修改后的代码,程序最终会输出4,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:00:59