Возможно, фактическая реализация прольет некоторый свет.
static int
ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
{
...
if (where > n)
where = n;
...
}
Итак, это отвечает на вопрос о том, как.
Философски, списки не являются массивами , и есть много манипуляций с списками, которые терпимы к странному индексированию. Например, l [1: 1000] вернет [2,3]. Все это предназначено для удобства программиста.
Как я могу найти этот идентификатор внутри исполняемого файла?
blockquote>Что , что id? Предположительно, тот, который использует ваш инструмент, за исключением того, что вы не сказали нам, какой инструмент вы используете.
Большинство инструментов Linux (например, GDB) используют специальную заметку
NT_GNU_BUILD_ID
в двоичном файле elf для связывания информации об отладке с двоичным. Вы можете видеть, что build-id вreadelf -n a.out
выводит.Когда я использую readelf для проверки сборки id, то это что-то другое
blockquote>Опять же, что именно ты видишь? Какую команду вы выполняете?
Возможно, они одно и то же, и вы просто «держите его неправильно». Или они кодируются по-разному, или вы смотрите на неправильную вещь. Мы не можем сказать.