Когда утверждение о себе истинно, а когда ложно? - PullRequest
0 голосов
/ 01 ноября 2018

Может кто-нибудь объяснить это, если состояние self.cards? Когда это будет Истина, а когда Ложь?

def __init__(self):
    self.cards = []

def __str__(self):
    if self.cards:
        rep = ""
        for card in self.cards:
            rep += str(card) + " "
    else:
        rep = "<empty>"
    return rep

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Любой объект может быть проверен на истинность в Python. Следующие значения считаются ложными:

нет

Ложная

ноль любого числового типа, например, 0, 0L, 0.0, 0j.

любая пустая последовательность, например, '', (), [].

любое пустое отображение, например, {}.

экземпляры пользовательских классов, если класс определяет метод __nonzero__() или __len__(), когда этот метод возвращает целочисленный ноль или логическое значение False.

Все остальные значения считаются истинными, поэтому объекты многих типов всегда являются истинными.

В этом случае карты равны False, когда они пусты, потому что это список. Когда объект создан, __init__() создает пустой список карточек, так что если условие оператора всегда False, когда объект создается.

0 голосов
/ 01 ноября 2018

Во-первых, вы, вероятно, должны показать нам, когда self.cards используется впервые.
Предполагая, что это какой-то контейнер (list, set или dict), он будет истинным, если в нем есть элементы, и ложным, если он пуст.

...