일부 변형은 명시적으로 필요한 것보다 더 많은 것을 검증하려고 할 수도 있습니다.
파이썬에서 일반적이지 않은 진리성 확인 방법
>>> [min(tup) for tup in tuples if len(tup)] # ➊
[1, 4, 9]
>>> [min(tup) for tup in tuples if bool(tup)] # ➋
[1, 4, 9]
>>> for tup in tuples:
... if (len(tup) > 0) is True: # ➌
... print(min(tup))
...
1
4
9
➊ 불필요한 len() 검증입니다.
➋ 불필요한 bool() 검증입니다.
➌ len() 검증, 비동등성 비교, is True의 불필요한 3중 검증입니다.
대부분의 경우 단순히 ‘참’이거나 ‘거짓’에 해당하는 것에 실제 True나 False 값을 강제하더라도, 단지 형식상 문제가 있을 뿐이지 프로그램의 동작에 문제를 일으키지는 않습니다. 하지만 코드의 악취에 해당하기 때문에 피하는 것이 좋습니다.