>
> 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/