【发布时间】:2020-06-17 23:25:08
【问题描述】:
def jump_to(self, position_piece, target_position):
middle_position = Position((position_piece.line + target_position.line)/2,
(position_piece.column + target_position.column)/2)
if position_piece not in self.cases:
return False
elif (target_position not in position_piece.four_position_jumps() and
target_position in self.cases):
return False
elif middle_position in self.cases:
if self.cases[position_piece] == self.cases[middle_position]:
return False
return True
我已经创建了上述函数,但我意识到我返回了 3 次 False。这对我来说看起来很糟糕。这是一个很好的实现吗?如何修改该代码以使其更 Pythonic?我很想知道如何返回 False 一次而不是三个。
【问题讨论】:
-
只要设置一个变量叫做result = true,然后在if语句中修改result=false,最后返回result。
-
老实说,您的代码布局方式是可读的 - 没有很长的 if 语句。
-
虽然你有很多条件要测试都返回False,但是这种方式还是比较清晰易懂的。您可以将它组合成一个
if条件,但它可能不太容易理解。这可能更好的一个重要原因是因为他们只是在做回报。如果他们每个人都执行相同的多行代码,并且必须在每个代码行中复制(如果需要更改,可能会出错),那将是不同的情况。
标签: python implementation