Как "тестировать" NoneType в python?
У меня есть метод, который иногда возвращает значение NoneType. Итак, как я могу подвергнуть сомнению переменную, которая не является типом? Мне нужно использовать Если метод, например
if not new:
new = '#'
5 ответов
Итак, как я могу задать вопрос переменной, которая не является типом?
использовать is
оператор, такой
if variable is None:
почему это работает?
С None
является единственным синглетным объектом NoneType
в Python, мы можем использовать is
оператор, чтобы проверить, имеет ли переменная None
в нем или нет.
цитирую is
docs,
операторы
is
и
это также можно сделать с isinstance
по состоянию на ответ Алекса Холла :
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
isinstance
также интуитивно, но есть осложнение, что для этого требуется строка
NoneType = type(None)
который не нужен для таких типов, как int
и float
.
самый простой способ, однако, без дополнительной строки в дополнение к ответ кардамона вероятно:isinstance(x, type(None))
Итак, как я могу задать вопрос переменной, которая не является типом? Мне нужно использовать метод if
используя isinstance()
не требуется is
внутри if
-заявлении:
if isinstance(x, type(None)):
#do stuff
дополнительная информация
Вы также можете проверить наличие нескольких типов в одном isinstance()
заявление, как указано в документация. Просто напишите типы как кортеж.
isinstance(x, (type(None), bytes))