Tishka17
Это не адрес
Pavel
Это не адрес
для cpython-то?
Tishka17
Ну в модельках мне нравится поле id, а не id_
В модели да. Потому что к нему обращение идёт через self и нет путаницы
Tishka17
для cpython-то?
А что, адрес? Мне казалось, это какая-то производная адреса
Tishka17
И все равно непонятно, зачем адрес
Aragaer
я вызывал id в каких-то случаях
Aragaer
но в питоне редко
Aragaer
а в лиспе identity как-то чаще
Pavel
И все равно непонятно, зачем адрес
ну как же, чтобы сделать import ctypes ctypes.cast(id(1), ctypes.POINTER(ctypes.c_int))[6] = 0 и получить сегфолт интерпретатора
Pavel
а если честно, не помню уже зачем, но зачем то было надо
Tishka17
Оу, ctypes, окей
Aragaer
эм.. id это рзаве адрс?
Pavel
в cpython - да
Aragaer
а, значит все-таки id и identity это разные вещи
Pavel
но это такой долгоиграющий сайд-эффект
Pavel
то есть никто не гарантирует, что так будет и дальше
Aragaer
... в хаскелле id это identity. Но могу ошибаться
Pavel
в других реализациях интерпретатора там просто какое-то уникальное число
Pavel
с другой стороны, адрес в памяти достаточно уникален
🤔
в какой ситуации может понадобиться функция id
🤔
стандратная
🍁 Jaŭhien
Разве что неявно при obj is other
Pavel
в какой ситуации может понадобиться функция id
в любой, когда нужно убедиться, что объект не просто равен, но и является тем же самым. хотя для этого есть is, который под капотом использует как раз id
🍁 Jaŭhien
Ну мб хеширование какое-то
Pavel
Ну мб хеширование какое-то
как я говорил выше, если нужен адрес, то в cpython это самый простой способ. другой вопрос, нахрена вообще вам в питоне нужен адрес
Nikolay
Переводить битки на определенный адрес
Tishka17
Переводить битки на определенный адрес
А что, по почтовому индексу нельзя?
🍁 Jaŭhien
А деньги по емейлу долго идут?
Pavel
Language: py3 Source: a = 3000 b = 3000 print(id(a) == id(b)) print(a is b) Result: True True
вообще говоря это странная какая то штука
🤔
раньше читал что для болших чисел будет False
Tishka17
А деньги по емейлу долго идут?
Сколько отправлял, ни разу не доходили. Приходилось потом почтой России ещё раз отправлять
Pavel
Language: py3 Source: a = 3000 b = 3000 print(id(a) == id(b)) print(a is b) Result: True True
это чем ты таким странным это запускал?
Tishka17
раньше читал что для болших чисел будет False
В интерактивном режиме скорее всего да. Или если это результат каких-то операций. А когда это константа в скрипте, она скорее всего будет переиспользована
🤔
Language: py3 Source: a = float(3000000000000) b = float(3000000000000) print(id(a) == id(b)) Result: False
🍁 Jaŭhien
=)
Tishka17
Language: py3 Source: a = float(3000000000000) b = float(3000000000000) print(id(a) == id(b)) Result: False
Ты преобразование во флоат сделал. Это другое.
Tishka17
Есть разница между числами как результатом операций и полученным из литерала в коде
Pavel
да оно и на интах должно было False выдать, если инт не в диапазоне от -5 до 25{X}(не помню сколько)
🤔
Language: py3 Source: a = 1.0123012309120301031 b = 1.0123012309120301031131093901390103 print(id(a) == id(b)) Result: True
🤔
втф
Pavel
втф
интересно, что сей бот использует
Pavel
на чем, собственно, запускает то
Tishka17
да оно и на интах должно было False выдать, если инт не в диапазоне от -5 до 25{X}(не помню сколько)
Нет. При парсинге скрипта выдераются все литералы. Затем выделяются для них объекты.
Tishka17
Если один литерал используется несколько раз, реально что будет один объект
🍁 Jaŭhien
Pavel
Pavel
тогда всё корректно
Nikolay
Зачем таксисту знать как работает автомобиль?
Tishka17
С другой стороны никто ничего не гарантирует на этот случай
Daniil
@Tishka17
ну у меня False выдало
Tishka17
У меня True
Tishka17
Литералы хоть и разные, из них было создано одно число
Tishka17
Потому что точность флоата не позволяет их отличить
Tishka17
Ещё раз напомню: никаких гарантий, что если вы сейчас получили тру, то и всегда будет тру, нету
🤔
это как с is
Daniil
угу
🤔
is только для None 🙂
Tishka17
И да, в интерактивном режиме литералы парсятся построчно. А не пофайлово
Daniil
🤔
и False True
🤔
print(a)
Tishka17
это как с is
Ну is по сути и проверяет совпадение id
Tishka17
Это интерактивный режим
Tishka17
Я выше написал
🍁 Jaŭhien
is только для None 🙂
is для любых кастомных объектов подойдет
🤔
Это интерактивный режим
а в пучарме консолька не интерактивная?
🤔