상세 컨텐츠

본문 제목

Magic Method (4) - __bool__

개발/python-심화(Advanced)

by Matthew0633 2022. 4. 16. 23:49

본문

이전에 3차례 걸쳐 Magic Method를 정리해봤는데, 추가적으로 __bool__ 에 대해서만 간단히 살펴보고 Magic Method 부분은 마무리하고자 한다. 이외에도 Object class로부터 상속받는 Magic Method가 더 있을 수 있지만 유용하거나 중요한 method를 접하게 되면 추가적으로 정리할 계획이다.

 

__bool__

정의한 Class의 객체에 대해 True 혹은 False에 해당하는 값을 반환하는 연산을 정의할 때 활용할 수 있다.

해당 함수가 매우 단순한만큼 이번에 조금 재미있는 예제를 준비해봤다.

과거에 매우 좋아했던 롤과 관련된 예제이다. 챔피언 class를 정의한다면, bool()로 챔피언 객체의 궁극기 준비 상태를 나타낼 수 있을 것이다. 예시에서는 궁극기 의존도가 큰 챔피언 중 하나인 아리를 class로 정의했다. 아리가 처음 객체로 정의될 때는 궁극기 (혼령질주, split_rush) 가 준비되어 __bool__ 결과가 True 이지만, 궁극기 사용 후에는 False 를 반환한다.

class Ahri:
    def __init__(self):
        self.ultimate_ready = True

    def split_rush(self):
        self.ultimate_ready = False

    def __bool__(self):
        return self.ultimate_ready

my_ahri = Ahri()
bool(my_ahri) # True

my_ahri.split_rush()
bool(my_ahri) # False

관련글 더보기

댓글 영역