[英]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.