Метод __bool__ в ООП в Python
Объект можно использовать в условиях
if и while. Python
считает объект ложным, если срабатывает
специальный метод __bool__
и он возвращает False.
Пусть у нас есть класс User
с возрастом:
class User:
def __init__(self, name, age):
self.name = name
self.age = age
Сделаем так, чтобы объект был истинным,
только если возраст больше нуля.
Реализуем метод __bool__:
class User:
def __init__(self, name, age):
self.name = name
self.age = age
def __bool__(self):
return self.age > 0
Проверим:
user1 = User('john', 25)
user2 = User('smit', 0)
print(bool(user1)) # выведет True
print(bool(user2)) # выведет False
Сделайте класс Employee
с зарплатой. Реализуйте __bool__:
объект истинен, если зарплата больше нуля.