我有一个方法,如果所有 3 个语句都为 true,我希望它返回 true。如果其中任何一个为 false,该方法应返回 false。
def check_valid(self, a, b):
statement1 = self.x == 0
statement2 = self.y == a
statment3 = self.z = b
return statement1 ^ statement2 ^ statement3
我使用 xor 来验证所有语句是否具有相同的值,但如果所有语句都为 false,则该方法将返回 true,这不是预期的行为。
为了解决这个问题,我正在考虑在 return 语句中添加 true,如下所示:
return true ^ statement1 ^ statement2 ^ statement3
但我不认为这是最好的方法。 有没有更干净/更好的方法来做到这一点?
这种方式将是更好的方法并且更具可读性:
def check_valid(self, a, b):
if not self.x == 0: return False
if not self.y == a: return False
if not self.z == b: return False
return True
您可以使用 all():
def check_valid(self, a, b):
s1 = self.x == 0
s2 = self.y == a
s3 = self.z == b
return all([s1, s2, s3])
def check_valid(self, a, b):
return all([self.x == 0, self.y == a, self.z == b])