临时改变实例属性的方法
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
我想定义一个方法来更新给定 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