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