临时改变实例属性的方法

A method that temporarily changes the attribute of an instance

我想定义一个方法来更新给定 class 实例中的某些属性,然后在更新后检查某些属性。然而,在这个检查过程之后,我希望属性回到它们的初始值,因为更新只需要检查。我会尝试用一个例子来阐明我的意思。


class Cl:
    def __init__(self,number):
        self.number=number
    def checking(self):
        self.number+=1
        if self.number<8:
            return True
        else:
            return False

这样,每当我使用检查方法时,属性将永远更新,而不仅仅是在检查期间:

I1=Cl(6)
print I1.number
print I1.checking()
print I1.number

最后一个 print 将 return 7。如何以属性不会永久更改的方式进行更新?

(当然,虽然在这个简单的示例中我可以在 if 中添加 self.number-=1,但我不想这样做,因为当我将使用不那么琐碎的更新时,逆运算可能并不简单)

理想情况下,您根本不会更改属性:

class Cl:
    def __init__(self, number):
        self.number = number
    def checking(self):
        if self.number + 1 < 8:
            return True
        else:
            return False

在更复杂的示例中,您可以使用局部变量,例如:

class Cl:
    def __init__(self, number):
        self.number = number
    def checking(self):
        number = self.number
        number += 1
        if number < 8:
            return True
        else:
            return False