> 
> 2010/10/13 Rolando Espinoza La Fuente <dark...@gmail.com>
> 2010/10/12 Jose Caballero <jcaballero....@gmail.com>:
> [...]
> > ----------------------------------------------------------------------------
> > import modN
> >
> >         if hasattr(modN, name):
> >                 return getattr(modN, name)()
> > ----------------------------------------------------------------------------
> >
> > ¿No hay forma de hacerlo más automático?
> > Lo ideal sería hacer un loop a los módulos que existan en el directorio
> > my_libs, de forma que no sea necesario escribir a mano esas dos líneas, uno
> > por módulo.
> 
> Puedes reusar el código de `walk_modules` de [1]. Y tener algo como:
> 
> all_modules = walk_modules("my_libs")
> 
> def getobject(name):
>    for mod in all_modules:
>        if hasattr(mod, name):
>            return getattr(mod, name)
> 
> Otra alternativa sería utilizar os.listdir() sobre my_libs, cargar los .py
> con __import__().
> 
> Saludos
> 
> [1] http://hg.scrapy.org/scrapy/file/a6275154f238/scrapy/utils/misc.py#l48
> 
> 



> ¿Puedes hacer que todas esas clases deriven de una sola? De esa forma podrías 
> hacer que en la clase base se mantuviera un registro de todas las clases 
> derivadas, usando un diccionario,p.e. que mapeara nombre de clase-> clase, o 
> nombre de clase -> (modulo, clase), o algo similar


¿tendría que mantener a mano ese diccionario o hay forma de hacer que se cree 
automáticamente?
_______________________________________________
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