이전에 3차례 걸쳐 Magic Method를 정리해봤는데, 추가적으로 __bool__ 에 대해서만 간단히 살펴보고 Magic Method 부분은 마무리하고자 한다. 이외에도 Object class로부터 상속받는 Magic Method가 더 있을 수 있지만 유용하거나 중요한 method를 접하게 되면 추가적으로 정리할 계획이다.
정의한 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
NamedTuple (0) | 2022.04.20 |
---|---|
Python 자료구조의 category (Sequence, Container, Flat, Mutable, Immutable) (0) | 2022.04.17 |
Magic Method (3) - __add__, __mul__, __sub__, __le__, __ge__ (0) | 2022.04.15 |
Magic Method (2) - __str__ 과 __repr__ (0) | 2022.04.14 |
Magic Method (1) - Magic Method의 정의 (0) | 2022.04.13 |
댓글 영역