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