代码如下:
from tkinter import *
class Main_content:
def take_one(self, state):
state = state - 1
return self.state
def take_two(self, state):
state = state - 2
return self.state
def __init__(self, master, state):
frame = Frame(master)
frame.pack()
self.label_status = Label(frame, text = "Coins left: " + str(state))
self.label_status.pack()
self.label_status = Label(frame, text = "Player " + str(player) + " turn's")
self.label_status.pack()
self.pak_een = Button(frame, text="Take 1 coin", command=self.take_one)
self.pak_een.pack()
self.pak_twee = Button(frame, text="Take 2 coins", command=self.take_two)
self.pak_twee.pack()
root = Tk()
player = 1
state = 21
b = Main_content(root, state)
root.mainloop()
错误是:
^{pr2}$我是新来的,所以我不知道我做错了什么。我不知道那是什么意思。
有一些问题:
take_one
和take_two
方法需要一个参数state
,但您永远不会将该参数传递给它们。您试图在这些函数中返回的
self.state
在任何地方都没有定义。即使其余代码正常工作,行}也没有任何用处。
state = state - 1
和{state
是这些函数中的局部变量,从不返回或使用。您应该将传递给
__init__
的state
存储在self.state
中,然后事件处理程序将有权访问它,并且不需要将其作为参数获取,并且不需要返回它:如果我遵循您的逻辑,您还需要在每次按当前值
self.state
时更新标签的值,我将把它留给读者作为练习:)相关问题 更多 >
编程相关推荐