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

Rolando Espinoza La fuente
www.insophia.com
_______________________________________________
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