Задать вопрос

Как устроен append в list?

Вопрос не несёт какое-то практическое значение чисто учебное
Как устроен метод append у list
Не на уровне CPython и работы с железом а на уровне Python
Такая реализация как бы работает но как бы я не пересоздаю append а использую append класса list()
def __init__(self, *arg):
    self.list = list(arg)

def append(self, item):
    self.list.append(item)

Я пробовал копаться в исходниках но не чего не понимаю(
И найти инфу в интернете не могу там либо как list реализован на уровне работы с железом либо используются уже методы класса list

В общем буду рад либо объяснению либо ссылку где можно почитать ну или что гуглить
  • Вопрос задан
  • 389 просмотров
Подписаться 3 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 1
sswwssww
@sswwssww
То на что ты смотришь это stub файлы сгенерированные Pycharm(например), т.е это просто служебные файлы "подделки", для того чтобы ты мог смотреть документацию, сигнатуры и тп. Если хочешь узнать как реально устроен метод append тебе нужно ковыряться в исходниках на C.
CTRL + F и ищи по list_append, а далее смотри на стек вызовов других функций(_PyList_AppendTakeRef и т.д).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nzlgd
@nzlgd
int
PyList_Append(PyObject *op, PyObject *newitem)
{
    if (PyList_Check(op) && (newitem != NULL)) {
        Py_INCREF(newitem);
        return _PyList_AppendTakeRef((PyListObject *)op, newitem);
    }
    PyErr_BadInternalCall();
    return -1;
}


Вот код из исходников питона, думаю объяснять ничего не надо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽