Есть такой код:
a = float("nan")
a == a # Получаем False
[a] == [a] # Получаем True
Почему так происходит?
Ответ
Потому что в первом случае работает свойство NaN.
А во втором случае Python проверяет на равенство массивы, а не объекты a
В данном случае [a] == [a] - объекты внутри массивов одни и те же (один и тот же экземпляр класса), а следовательно Python будет реагировать на a как на обычные объекты (сначала сравнивать по ссылкам).
Комментариев нет:
Отправить комментарий