¿Meexplican los paquetes?

Chema Cortés ch3m4 en ch3m4.org
Mar Dic 23 10:38:03 CET 2003


Luis Rodrigo Gallardo Cruz escribió:

>  Lo que quiero es llamar a una función definida
> en otro módulo, que a su vez guarda las referencias a Propiedad y que
> despues uso desde _otro_ lado, con la intención de poder ordenar que
> se refresque la definición de Propiedad. 
> 
> reload = Otro_modulo.reload_maker(Propiedad, otros_args)
> 
> La duda es: ¿Funciona? De lo que quiero estar seguro es de que vamos a
> cargar el módulo correcto, aun que lo llamemos desde otro módulo. Como
> esto es para una herramienta genérica, no puedo garantizar que el otro
> módulo no va a tener un submódulo Propiedad, por ejemplo. El reload en
> sí ya sirve, pero al tratar de meter db como subpaquete de otro fué
> que falló. 

Vale. Lo que realmente quieres es controlar de dónde carga el módulo. De 
todos modos me parece que te complicas demasiado. ¿Has intentado alguna 
solución orientada a objetos?

No se puede cambiar el mecanismo estándar de importación, que siempre 
busca en la ruta establecida por 'sys.path'. Si quieres más control 
puedes puedes utilizar el módulo 'imp', con el que llegas a controlar la 
ruta de donde cargar los módulos, o mejor utiliza el nuevo módulo 
'pkgutil' para alterar el 'sys.path' cuando inicializas el paquete (en 
el 'tst/__init__.py').



OJO: ¡cuidado con 'reload' como nombre, que es el nombre de una función 
estándar!

-- 
Res publica non dominetur


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