eliminar una clase en python

Marcos Sánchez Provencio rapto en arrakis.es
Dom Mar 14 10:28:19 CET 2004


No sé si te valdrá, pero en Python se pueden hacer salvajadas como esta:
class base:
    def __init__(self,valor):
        self.atributo=valor
class a(base):
    def prueba(self):
        print self.atributo, ' de la clase a'
class b(base):
    def prueba(self):
        print self.atributo, ' de la clase b'

ob=a('creado como a')
ob.prueba()
ob.__class__=b
ob.prueba()
##
creado como a  de la clase a
creado como a  de la clase b

Puedes borrar la variable a, pero la clase no desaparece hasta que no 
desaparezcan todas las referencias a ella, como ocurre con cualquier 
objeto de Python. En concreto, todos los objetos de una clase mantienen 
una referencia a ella.

Christal Berengena Moreno escribió:

>Hola a todos!
>
>Os explico mi problema... tengo generada una interfaz de python con
>tkinter y pmw bajo mandrake 9.1 y en una de mis opciones, modifico un
>listado de nombres que repercuten en varios sitios... Para cada tipo de
>pantalla he generado una clase diferente que las llamo desde la clase
>global (la clase "interfaz"). El problems es que esta lista que modifico
>implican bastantes cambios en el resto de las clases de mi interfaz, por
>lo que me seria mas rapido eliminarlas todas y llamar de nuevo al
>constructor de la clase interfaz... pero el problema es que python no me
>permite eliminar un objeto de la clase y no puedo hacer lo que yo
>queria... que es generarlos de nuevo... he estado buscando por las webs de
>python, tutoriales, etc. Pero en todos lo unico que encuentro es la
>generacion de clases, pero nada de eliminarlas... y claro, no puedo
>iguala el objeto de la clase a nada porque eso no me elimina los frames
>que ya tenia generados y que he de cambiar... La unica solucion que tengo
>es cambiarlo todo manualmente??
>
>Espero que podais ayudarme y haberme explicado mas o menos bien!
>Saludos a todos y gracias de antemano...
>Christal
>  
>




Más información sobre la lista de distribución Python-es