Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Странная работа NaN в python: nan != nan and [nan] == [nan]

Есть такой код:
a = float("nan") a == a # Получаем False [a] == [a] # Получаем True
Почему так происходит?


Ответ

Потому что в первом случае работает свойство NaN.
А во втором случае Python проверяет на равенство массивы, а не объекты a
В данном случае [a] == [a] - объекты внутри массивов одни и те же (один и тот же экземпляр класса), а следовательно Python будет реагировать на a как на обычные объекты (сначала сравнивать по ссылкам).

Комментариев нет:

Отправить комментарий