重构多个等式检查的最具python风格的方法

重构多个等式检查的最具python风格的方法,python,python-3.x,refactoring,zen-of-python,Python,Python 3.x,Refactoring,Zen Of Python,给出一个if语句,如: if response.status == SUCCESS or \ response.status == FAILURE or \ response.status == CLEAR or \ response.status == READY: 像(1)这样重构更好吗 或(二): 我的直觉是1更好,因为它更透明(如果不是更可读的话),但2更简洁,避免了遍历元组中的每个项。您可以像这样使用元组或列表,无需迭代。(蟒蛇3.7) 你的案子 if respon

给出一个if语句,如:

if response.status == SUCCESS or \
   response.status == FAILURE or \
   response.status == CLEAR or \
   response.status == READY:
像(1)这样重构更好吗

或(二):


我的直觉是1更好,因为它更透明(如果不是更可读的话),但2更简洁,避免了遍历元组中的每个项。

您可以像这样使用元组或列表,无需迭代。(蟒蛇3.7)

你的案子

if response.status in (SUCCESS, FAILURE, CLEAR, READY):

我会使用最后一个方法,因为它更可读。不确定为什么得到-1?至少在你做这件事的时候留下理由。这怎么算是一个答案呢?你忽略了他们的要求,而是提供了另一种选择,这与他们的第二种选择几乎相同,你对此只字不提(比如,为什么你的选择可能更好)。这是选项1的选择,这是一种类似于Python的方式。如果您提供了示例,则并不总是需要解释。
if response.status in {SUCCESS, FAILURE, CLEAR, READY}:
>>>'SUCCESS' in ('SUCCESS', 'FAILURE', 'CLEAR', 'READY')
True
if response.status in (SUCCESS, FAILURE, CLEAR, READY):