Móduls importados con __import__

Santi Camps santi en zetadb.com
Mie Mayo 26 21:34:30 CEST 2004


Hola a todos,

Tengo un trocito de código algo rebuscadillo, en el que aplico un 
sistema de adaptadores.   La intención es que si un mètodo está definido 
en el adaptor, se use ese y, si no lo está, lo vaya a buscar en el 
objecto adaptado.  Es algo así:

        adapter_path = self._get_adapter_path(request)
        if (adapter_path is None): return self
        
        if 
self.__class__._v_loaded_adapters.has_key(adapter_path):                
            adapter = self.__class__._v_loaded_adapters[adapter_path]
        else:
            module  = __import__(adapter_path[0], globals(), locals(), 
[adapter_path[1]])
            adapter = getattr(module, adapter_path[1])
            self.__class__._v_loaded_adapters[adapter_path] = adapter
 
        return adapter().__of__(self)


El __of__ es una acquisition de Zope.   El código funciona, pero me 
encuentro con el caso que, si intento acceder a un método del adaptador 
la ejecución es muchísimo más lenta que si accedo a un método del objeto 
adaptado.  Lo he estado probando con un medidor de benchmarks, el ab.    
Puesto que el adaptador se aplica en todos los casos, supongo que mi 
problema puede venir por alguna razon pythoniana que desconozco, el modo 
de hacer el __import__ o bién el modo de guardar la clase importada.  

¿ A alguien se le ocurre una razón ?

Gracias

Santi Camps


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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