繁体   English   中英

重构多个相等检查的最pythonic方法

[英]Most pythonic way to refactor multiple equality checks

给定一个 if 语句,如:

if response.status == SUCCESS or \
   response.status == FAILURE or \
   response.status == CLEAR or \
   response.status == READY:

像 (1) 那样重构是否更好:

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

或(2):

if response.status in {SUCCESS, FAILURE, CLEAR, READY}:

我的预感是 1 更好,因为它更透明(如果不是也更易读),但 2 更简洁并且避免必须遍历元组中的每个项目。

您可以像这样使用元组或列表,无需迭代。 (Python3.7)

>>>'SUCCESS' in ('SUCCESS', 'FAILURE', 'CLEAR', 'READY')
True

你的情况

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM