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()
改动说明
- 将函数名改为
update_money,避免与数值变量money重名。 - 初始化
money = 0,确保初始显示为Money: 0。 - 在函数内添加
global money声明,明确修改全局变量。 - 使用
t.clear()清除旧文本后再写入新内容,保证显示最新数值。 - 添加
turtle.done()保持窗口打开,避免运行后自动关闭。
内容的提问来源于stack exchange,提问作者user20423495
相关产品推荐
相关产品推荐

