我试图创建函数“count”,它以变量的形式接受一个整数,并在每次按下返回键时向其添加1,每次保存到变量
该参数需要保持通用,因为在将来,它将根据按下的按钮对多个变量运行相同的“count”函数
我试图通过将global messi
放在顶部,使messi
成为一个全局变量,但同样的问题也出现了
import tkinter as tk
class PlayerStats:
def __init__(self, name, touches):
team = "Barcelona"
self.name = name
self.touches = touches
def count(number):
number = number + 1
print(number)
messi = PlayerStats("Messi",0)
root = tk.Tk()
root.bind('<Return>', lambda event :PlayerStats.count(messi.touches))
root.mainloop()
当我运行这个代码段时,它会迭代一次,从0到1,然后重置总是打印出1
任何关于为什么会发生这种情况以及如何修复的想法都将不胜感激
您没有保存操作的结果
您正在用
touches
的值0实例化PlayerStats
类。 然后,该值在整个代码中不会发生变化当tkinter调用
count
方法时,它会增加number
,但该变量从未离开该方法的作用域,因此会被垃圾收集要解决这个问题,您应该将类更改为
谢谢你的帮助,Dogeek。我上面的功能代码如下所示:
但是,这并不能解决一件事,那就是对不同变量重用该函数的能力。我现在正试图想出一种优雅的方式来做这样的事情: 将tkinter作为tk导入
其中数字表示messi.shots或messi.touch,具体取决于按下的键。我不想为每个键重新创建一堆几乎相同的函数
相关问题 更多 >
编程相关推荐