Как списки реализованы, чтобы быть неоднородными в Python? - PullRequest
0 голосов
/ 10 июня 2019

Как списки реализованы как неоднородные?Я знаю, что список - это динамический массив указателей, которые указывают на место в памяти требуемого элемента, но как это работает, когда элементы, на которые указывают индексы, имеют разные размеры.

Указывает ли расположение указательсодержать информацию о том, какого типа это место содержит, и если да, то как эта информация форматируется, используется, возвращается?

Я понимаю, как [1,2,3] должно выглядеть в памяти, но не как [1, 2, "abcdefg"] будет выглядеть в памяти.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

В python все является объектом: как вы уже упоминали, списки - это наборы «указателей» на расположение в памяти объектов, содержащихся в списке.

Как объекты, каждый из них знает свой тип, атрибуты, свойства и т. Д.
Поэтому они не могут превышать собственную границу памяти, и подсчет / указатель количества указателей, указывающих на них, незаметно поддерживается интерпретатором python.

0 голосов
/ 10 июня 2019

С технической точки зрения (то есть, как реализовать что-то подобное), найдите концепцию абстрактного типа данных (ADT) в C, например, здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...