Объект Python должен претендовать на None или пустой - PullRequest
0 голосов
/ 21 мая 2019

У меня есть класс Python, который имеет определенные значения. Этот класс является просто классом-оберткой, который используется как контейнер данных внутри другого объекта класса.

Когда у меня есть какая-либо переменная в python, я могу проверить, является ли она пустой (или равной False), просто выполнив

my_variable = "something" 
if my_variable
>>> True

my_variable = None # or False, or 0 or whatever equals False
if my_variable
>>> False

Пока это все как обычно. Но я бы хотел, чтобы мой класс вел себя точно так же, но только если определенный атрибут имеет определенное значение, в противном случае он должен возвращать True. Возможно ли это, или python проверяет, привязан ли my_variable к чему-либо или нет?

class Test(object):
    def __init__(self, isTrue):
        self.isTrue = isTrue

A = Test(True)
B = Test(False)

if A
>>> True

if B
>>> False

1 Ответ

3 голосов
/ 21 мая 2019

Звучит так, будто вы ищете __bool__ (или __nonzero__ для Python 2).

class Test(object):
    def __init__(self, isTrue):
        self.isTrue = isTrue
    def __bool__(self):
        return self.isTrue
...