Importando modulos
Chema Cortés
chemacortes en wanadoo.es
Mar Jul 23 03:45:59 CEST 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El Lun 22 Jul 2002 17:09, Attila Saorin escribió:
> os queria preguntar una duda sobre la importacion de modulos de unos
> ficheros a otros.
>
> Tengo un fichero ejemplo, con el que quiero realizar una serie de acciones
> (no creo que sea la forma definitiva de hacerlo, quizas este fichero se
> pase como entrada a mi programa, pero eso es otra cosa), entonces, mi
> programa tiene un fichero que diriamos como principal, con nombre engine,
> donde alli hago las importaciones de todos los modulos y clases que voy a
> utilizar. Por lo tanto, yo en mi fichero ejemplo, importo dicho modulo
> engine, el problema es que si yo llamo un metodo que esta definido en una
> clase que es importada desde el engine y no directamente importado por mi
> fichero ejemplo, no los reconoce ?que deberia poner para poder llamarlos?
> si en mi fichero ejemplo importo esos ficheros, no hay problema, pero no me
> parece elgante ni practico.
No se si he entendido la cuestión.
Para que lo veas claro, piensa en el comando 'import' como si fuera un
mayordomo que presenta en sociedad a otros módulos. Si hay módulos que no han
sido importados directamente, sino a través de un intermediario, será este
intermediario quien los presente en sociedad:
Si el módulo 'engine' importa el módulo 'M' que define una clase 'C', el
acceso a esa clase será 'engine.M.C'. Si no te gusta así, prueba a hacer el
import así:
from engine.M import C
aunque lo más lógico, a pesar de lo que te parezca, es que hicieras:
from M import C
Si es necesario, no pasa nada por importar el mismo módulo otra vez (hay una
caché que evita que se vuelva a leer del disco). En cuanto a la elegancia,
dependerá un poco de cómo sea el resto del código, de lo relacionada que esté
la clase 'C' con el módulo 'engine'.
Saludos,
- --
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien
PYTANDO http://pytando.sf.net | se contenta con lo que sabe"
PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9PLVXHLTQrABk8H0RAj0LAJ9hJ8xpMb+9SbQ2JgdjtKlU0zwDNQCgmztV
AwXgSAoow6F7x6rY56RKvdE=
=dsOg
-----END PGP SIGNATURE-----
Más información sobre la lista de distribución Python-es