더북(TheBook)

가끔 TrueFalse를 반환하는 함수 내부에서 보초 값이 사용되는 파이썬 코드를 볼 수 있습니다. 대부분 None이 보초 값으로 사용되지만, 때로는 다른 값이 사용되기도 합니다. 여기서 발생할 수 있는 문제는 코드에서 해당 함수가 사용될 때 보초 값이 진리성을 판단하는 데 사용될 수 있다는 오해를 불러일으킨다는 것입니다.

따라서 처음부터 코드를 작성하거나 리팩토링한다면, 표준 라이브러리의 잘 설계된 enum 모듈을 활용하여 명시적인 열거형을 사용할 것을 권장합니다. 하지만 실제로는 이를 사용하지 않는 코드를 사용해야 할 수도 있습니다.

보초 값을 사용하는 유사 불리언 논리 함수

>>> import re
>>> def has_vowel(s):
...     "Vowels are a, e, i, o, u ... and sometimes y"
...     class Maybe:
...         def __repr__(self):
...             return "MAYBE"
...
...     if re.search(r"[aeiou]", s):
...         return True
...     elif "y" in s:
...         return Maybe()
...     else:
...         return False
...

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.