Tal vez no me expliqué bien, lo siento mucho y que eso les pudo haber quitado mucho tiempo. Mi idea es crear una clase MetaWord, la cual tiene informacion( de una palabra en ingles) como:
significado, pronunciacion en mp3, ejemplos en contexto y demas.
Y esta clase Metaword quisiera que pudiera por ejemplo en algunos casos, solo tener significado y
nada de mp3, significado y mp3 , ejemplos y mp3 y no significado.

Entonces se me ocurrio crear una clase MP3 para buscar su MP3 en internet y guardarlo en una carpeta, crear una clase Meaning para buscar el significado, y una clase Context para buscar ejemplos. Cada una de estas clases tiene diferentes argumentos para inicializarse, y tienen sus correspondientes metodos
de busqueda.

Despues pense que seria buena idea juntar todo, pero aveces solo quiero las caracteristicas de MP3 o solo las caracteristicas de Meaning. Podria hacer esto con sentencias if en __init__ pero cada vez que le quiera agregar una caracteristica de una nueva clase por ejemplo ImagenDeLaPalabra hay que modificar muchas cosas. Entonces usando una estructura if puedo estar cambiando el comportamiento de __init__ pero por ejemplo si quiero agregar ImagenDeLaPalabra al codigo que esta abajo, hay que modificar muchas cosas. Entonces queria ver si habia
una manera mas limpia de hacer esto.

En resumen, en una clase meter todo lo de otras clases, decidir de que clases quiero heredar y que no se sobreescriba el método __init__ sino que simplemente se junten con super o con el método que puse abajo. Tal vez no sea tan trivial y evitarse el trabajo de estar modificando la clase no es posible. Pero con metaclases puedo crear clases dependiendo de mis necesidades pero ¿existe una mejor manera de hacer esto? lo veo muy engorroso y dicen que cuando no puedes explicarla implementacion de una forma sencilla tal vez no es buena idea implementarla

> class metafile(Mp3, Meaning)
>     def __init__(self,**kwargs):       #pensaba en pasar algo asi (word =
> #'pepe', Mp3 = False , Meaning= True)
>
>        if( kwargs.has_key('word'))
>            self.word = word
>        if( kwargs.has_key('directory'))
>            self.directory = directory
>        if(args['Mp3'] ):
>            Mp3.__init__(self. self.word)
>        if(args['Meaning']):
>            Meaning.__init__(self. self.word, self.directory)
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a