为了账号安全,请及时绑定邮箱和手机立即绑定

每次我调用一个方法时,我都希望值减少 1

每次我调用一个方法时,我都希望值减少 1

慕尼黑5688855 2022-10-18 19:46:00
有没有一种方法可以在每次调用该方法时将值减少 1。我试过的代码是Class Testing:    max_count = 5    def update_count(self, reducebyone):        actual_count = max_count        updated_count = actual_count - reducebyone        resetcount = updated_count        print(actual_count)        print(updated_count)        print(resetcount)obj = Testing()obj.update_count(1)obj.update_count(1)我期望的结果是当第一次调用该方法时,我期望 O/P 为:5 4 4 第二次调用该方法时,我期望 O/P 为:4 3 3 任何人都可以帮忙。
查看完整描述

3 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

您的所有变量都是该方法的本地变量。您需要将count状态存储在类或实例中。您调用该方法的方式表明您在后者之后:


class Testing:

    def __init__(self):

        self.count = 5


    def update_count(self, reducebyone):

        print(self.count)

        self.count -= reducebyone

        print(self.count)


>>> obj = Testing()

>>> obj.update_count(1)

5

4

>>> obj.update_count(1)

4

3


查看完整回答
反对 回复 2022-10-18
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

这是你想要的吗?我认为一个循环会更好,但我不知道你想要实现什么。


class Testing:

    max_count = 5

    cur_count = max_count


    def update_count(self, reducebyone):

        self.cur_count -= reducebyone

        resetcount = self.cur_count

        print(self.max_count)

        print(self.cur_count)

        print(resetcount)


obj = Testing()

obj.update_count(1)

obj.update_count(1)

输出:


5

4

4

5

3

3


查看完整回答
反对 回复 2022-10-18
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

是的,有很多方法可以实现这一目标!

最简单的方法是self.max_count = updated_count在计算 updated_count 后添加。您还需要访问max_count始终使用self.max_count


查看完整回答
反对 回复 2022-10-18
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信