Problemas con el __del__
Pablo Barrera González
barrera en gsyc.escet.urjc.es
Lun Feb 9 19:32:55 CET 2004
Hola
Tengo un problema bastante raro que me ha hecho cuestionarme mi
conocimiento sobre las clases en Python. Tengo una clase para realizar
comunicaciones a través de un socket con un servidor. La clase es esta:
class MiClase:
def __init__(self):
soc = socket.socket()
host = socket.gethostbyname("bla")
port = 3001
soc.connect((host, port))
self.soc = soc
print "Conectado con ", host
def __del__(self):
self.soc.send("1000\n")
self.soc.close()
print "Conexion cerrada como dios manda"
def resto_de_metodos(self):
pass
Quiero que cuando se cierre el programa y un objeto de clase MiClase
muera se cierre la conexión como dios manda. El problema es que nunca
veo esa cadena de texto, ni aunque haga del miobjeto. La única forma es
miobjeto.__del__().
¿No debería ejecutarse el destructor al final del script al cerrarse el
interprete?
Gracias
Pablo
PD: La ejecución es
objeto = MiClase()
if __name__ == "__main__":
objeto.resto_de_metodos()
Uso python 2.3 en Debian GNU/Linux Sid.
--
Pablo Barrera González <barrera en gsyc.escet.urjc.es>
Grupo de Señales y Comunicaciones (URJC)
Más información sobre la lista de distribución Python-es