¿Pueden las devoluciones de llamada `weakref` reemplazar a` __del__`?
¿Hay algún obstáculo que impidaweakref
de hacer todo lo que__del__
lo hace pero con garantías mucho más fuertes (por ejemplo,finalize
garantiza que la llamada se realizará antes de que salga el intérprete y que el orden de las llamadas esté bien definido, etc.)
Parece que en el pasado lejanose pensó eseweakref
eventualmente conduciría a la eliminación de__del__
del idioma
¿Qué evitó que esto sucediera?
Parece serpocos casos de uso para__del__
, y todos los que conozco parecen funcionar al menos tan bien (y generalmente mucho mejor) conweakref
devoluciones de llamada oweakref.finalize
.
Actualizar:
ConPEP 442 mejorando dramáticamente el comportamiento de__del__
y las preocupaciones conweakref
mencionado por @gz y @ user2357112, me pregunto si el lenguaje generalmente se está moviendo hacia la creación__del__
más confiable, o hacia el usoweakref
en lugar de__del__
, o ambos.