Как я могу проверить две переменные на NoneType в Python 3? - PullRequest
0 голосов
/ 01 апреля 2019

Все время я пытался сравнить две переменные с типом None, но это не работает.

пример:

if type(a and b) == type(None):
   #do something
else:
   #do other stuff

Знает ли кто-нибудь правильное утверждение и объяснение

Ответы [ 3 ]

2 голосов
/ 01 апреля 2019

Вы можете проверить по-разному.

if a is None and b is None:
    print('Both a and b are None')
else:
    print('a and b are not None')

Проблемы с вашим кодом.

  1. a and b вернет либо a, либо b
  2. сравнение типов не является хорошим вариантом.
0 голосов
/ 01 апреля 2019
def nonetype_check1(a,b):
    if a==b and a==None:           
        print(" both are nonetype type",type(a))
    elif a!=b:
        print("values of both are not same",a,b)
    else:
        print("values of both are same but not nonetype",type(b),type(b))

вывод: 1) a = нетип, b = нетип, ответ : оба типа нетипов 2) a = нетип, b = 3, ответ : значенияоба не одинаковы Нет 3 3) a = 3, b = 3, ответ : значения обоих одинаковы, но не нетипичны

0 голосов
/ 01 апреля 2019

В Python, если вы хотите проверить наличие нулевых переменных, вы должны использовать синтаксис x is None.В среде исполнения Python есть только один экземпляр объекта None (он называется singleton).Более того, проверка по типу обычно является плохой практикой.В вашем случае вы должны сделать:

if a is None and b is None:
   #do something
else:
   #do other stuff

Вы также можете упростить его до if (a and b) is None, так как оператор and будет распространять None, если один из a и b равен None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...