가끔 True와 False를 반환하는 함수 내부에서 보초 값이 사용되는 파이썬 코드를 볼 수 있습니다. 대부분 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
...