это другой чат
Это чат Begginers
да тут как бы не про ботов(или я тупой)
а причем тут боты?
ну аааааааааааа
ты посмотри мое сообщение
да, "is" = "=="
но работает то так же
нет не так же
оператор == сравнивает значения, а оператор is проверяет идентичность В примере выше is, по сути, делает следующее: id(a) == id(b) #False Результат от is и результат от == одинаковы в случаях с неизменяемыми объекты, так как они только один раз сохраняются в оперативной памяти
Два неизменяемых объекта могут быть равны ( == вернёт True), Но именно разные id (is вернёт False)
Как два неизменяемых объекта могут быть равны и при этом иметь разные id?
>>> a=1024 >>> b=512+512 >>> a is b False >>> a == b True
это специфичное для repl и cpython поведение, на такое рассчитывать не нужно
Погугли
Например являться разными объектами и быть записаны в разных ячейках памяти
А кто тебе сказал, что проверка по Id? Is проверяет указывает ли объект на тот же участок памяти.
Нет. Просто в cpython в качестве id используется указатель на объект. А сравниваются id
как с этим жить теперь?
Никто. Я просто считал это логичным
Не использовать is не к месту
так же, как и раньше. +1 выше
Это частный случай, когда происходит интернирование
Кстати да, я тоже не понял, у низ же один id
Обсуждают сегодня