2011-10-10 10 views

Respuesta

6

La mayoría de los tipos incorporados no son directamente referenciables débiles (por ejemplo, str, int, float, list, dict, None), y hay algunos que ni siquiera se pueden hacer por subclasificación (por ejemplo, tuplas en CPython).

Algunos detalles sobre la implementación subyacente de las vulnerabilidades para varios tipos incorporados se pueden encontrar en this March-2005 python-list post by Raymond Hettinger.

+0

Gracias. Ahora podía ver la razón por la cual tuple y str no podían ser referenciados débilmente. ¿Qué hay de la lista y dict? ¿Por qué tenemos que subclasificar esos tipos para crear una referencia débil para ellos? –

+0

Si las pistas dadas en el segundo párrafo no son suficientes para continuar, me temo que no sé lo suficiente sobre las partes internas de Python para explicarlas más. Tal vez sería mejor que hicieras este tipo de preguntas en la [lista de python-dev] (http://mail.python.org/mailman/listinfo/python-dev). Estoy seguro de que uno de los desarrolladores de python podrá darle una respuesta definitiva a su pregunta. – ekhumoro

+0

Llegado aquí hace un momento, el enlace a la publicación está roto. Creo que http://mail.python.org/pipermail/python-list/2005-March/346301.html es así. –

0

Mi conjetura es que los dicts y las listas se usan internamente para implementar weakrefs, por lo que tendrías una situación de huevo-pollo aquí.

Cuestiones relacionadas