号码是加上去的而不是拿走的,我不知道为什么?

2024-04-20 09:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我仍然在Tkinter混日子,但我正在努力平衡当前的开支清单。从理论上讲,每次触发时,花费值应减少10。但是它反而增加了10

我已经尝试过在定义Spent2的地方移动,但是我得到了一个未定义的错误。我想可能是因为它变成了一个负数?所以当我从平衡值中取spent2值时,它会加上它。如果是这样的话,我该怎么解决这个问题呢

成员类

class Member:
    year = 0
    spent2 = 0
    def __init__(self, name, rank, spent):
        self.name = name
        self.rank = rank
        self.spent = spent

    def sal(self):
        rank10 = str(int(self.rank) * 100)
        print(self.name +" is earning "+ rank10)

    def bal_year(self):
        bal10 = str(int(self.rank) * 100 * int(self.year) - int(self.spent))
        print(self.name +" has £"+ bal10)

已调用Sp10

def bread():
    br=Tk()

    def sp(old:Tk):
        old.destroy()
        Tiger()
        sp10()




    br.title('Bread')
    l4 = Label(br, text="What would you like to buy Tiger bread, a Bageutte or a Loaf Bread?").pack()
    br1 = Button(br, text = "Buy Tiger Bread", command = lambda: sp(br))
    br1.pack()

改变花费价值

def sp10():
    Member.spent2 = (Member.spent2 - int(10))

对我班成员的测试

def balance():
    doppy = Member("DoppyRex", "6", Member.spent2)
    doppy.bal_year()

我预计总余额会减少10,但实际上会增加10。你知道吗


Tags: namebrselfdef成员yearintmember
1条回答
网友
1楼 · 发布于 2024-04-20 09:58:37

我认为问题是你降低了花费:

def sp10():
    Member.spent2 = (Member.spent2 - int(10))

10,也就是说

bal10 = str(int(self.rank) * 100 * int(self.year) - int(self.spent))

增加10,因为你减去自用的. 你知道吗

相关问题 更多 >