Попытка создать ошибку подтверждения не работает? - PullRequest
0 голосов
/ 08 февраля 2019

Я делаю очень простой код, который проверит, больше ли список в длине словаря, чем целое число в другом ключе словаря.

Например, если бы у меня было:

d = {'lst': [1,2,3,4,5] , 'compare': 5}

Было бы хорошо, потому что максимальное количество значений (или длина) списка может быть 5 (меньше или равно отлично)).

Это, с другой стороны, должно выдать ошибку подтверждения:

d = {'lst': [1,2,3,4,5,6] , 'compare': 5}

, поскольку длина списка в ключе 'lst'> 'compare'.

Вот что я попробовал:

if len(d['lst']) > d['compare']:
    assert 'Queue is larger than max capacity'
else:
    pass

Я новичок в использовании 'assert', так что я, вероятно, неправильно это использую.Если бы кто-нибудь мог мне помочь, это было бы очень признательно!

1 Ответ

0 голосов
/ 08 февраля 2019

Оператор assert принимает условие в качестве первого «аргумента».Оператор if не требуется.

assert len(d['lst'] <= d['compare']), "Queue is larger than max capacity"

Если условие false , то вызывается AssertionError (который включает необязательный второй аргумент).В противном случае ничего не происходит.

Думайте о assert foo, bar как о ярлыке для

# assert foo, bar
if foo:
    raise AssertionError(bar)
...