Почему Strom не поддерживает встроенные типы в Python? - PullRequest
8 голосов
/ 10 октября 2011

В документе Python слабой ссылки (http://docs.python.org/library/weakref.html) говорится, что

Несколько встроенных типов, таких как list и dict, не поддерживают напрямую слабые ссылки, но могут добавить поддержку через подклассы

Я думаю, что создание слабой ссылки для большой диктат может быть полезно в некоторых реальных случаях. Мне интересно, в чем причина этой реализации?

Ответы [ 2 ]

6 голосов
/ 10 октября 2011

Большинство встроенных типов не являются непосредственно слабо ссылочными (например, str, int, float, list, dict, None), и есть некоторые, которые даже не могут быть сделаны подклассами (например, кортежи в CPython ).

Некоторые подробности о базовой реализации слабых ссылок для нескольких встроенных типов можно найти в этой публикации Python-списка за март 2005 года Раймонда Хеттингера .

0 голосов
/ 10 октября 2011

Мое обоснованное предположение состоит в том, что диктовки и списки используются внутри для реализации слабых ссылок, поэтому у вас будет ситуация с яйцом-курицей.

...