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

Turtle点击递增数字显示异常求助:显示函数对象而非数值

问题解决方案

问题分析

  • 你将数值变量与函数重命名为money,导致str(money)输出的是函数对象的内存地址,而非预期的数值。
  • 未初始化数值类型的money变量,缺少初始值0。
  • 函数内部修改全局变量时未声明global,会触发局部变量未定义的错误。
  • 点击后未更新显示内容,旧文本会一直保留在窗口中。

修正后的代码

import turtle

# 初始化turtle对象
t = turtle.Turtle()
player = turtle.Turtle()
# 隐藏画笔光标
t.hideturtle()
player.hideturtle()

# 初始化数值类型的money变量,初始值为0
money = 0

def update_money():
    global money
    money += 1
    # 清除旧文本,写入最新数值
    t.clear()
    t.write(f'Money: {money}', align='center', font=('Arial', 16, 'normal'))

# 初始显示预期内容
t.write(f'Money: {money}', align='center', font=('Arial', 16, 'normal'))
# 绑定点击事件
player.onclick(update_money, 1)

turtle.done()

改动说明

  1. 将函数名改为update_money,避免与数值变量money重名。
  2. 初始化money = 0,确保初始显示为Money: 0。
  3. 在函数内添加global money声明,明确修改全局变量。
  4. 使用t.clear()清除旧文本后再写入新内容,保证显示最新数值。
  5. 添加turtle.done()保持窗口打开,避免运行后自动关闭。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:05:27