Re: [Python-es] Sobre Módulos

Javier Garcia red.octobered en gmail.com
Dom Nov 25 11:44:52 CET 2007


Es algo así, pero sin que se necesite instanciar una clase desde
__main__ para pasarle
__file__ al módulo.

Es decir desde __main__ hacemos

>> import modulo

¿ con solo esta linea es posible que modulo sepa quien es el archivo
que lo ha importado ?

Quiero investigar que ocurre cuando se le pasa el control de ejecución
a un módulo, quizá sea una chorrada pero tengo curiosidad.

Un ejemplillo:

<< Main.py >>

import modulo

... resto del código....

<< modulo.py >>

import sys

if __name__ != "__main__":

       print "El fichero que ha importado este módulo es:"   #
devuelve >> main.py

       ... leer main.py y hacer cosas con todo el código ( excepto con
la linea " import modulo" )

        sys.exit()  #  terminamos la ejecución sin que el interprete
ejecute por si mismo el
                        # código de main.py

 ¿Esto vale para algo o es inutil??

Gracias.








El 25/11/07, Francisco Palm <francisco.palm en gmail.com> escribió:
> No veo muy claro lo que quieras...
>
> Cualquier clase del módulo puede consultarle al programa principal
> cual es el nombre del archivo:
>
> archivo modulo.py
> ----
> class clase:
>     def __init__(self,archivo):
>        self.archivo = archivo
> ----
>
> archivo principal.py
> ----
> import modulo
>
> objeto = modulo.clase(__file__)
>
> print objeto.archivo
> ----
>
> Saludos
>
> F. Palm
>
>
> El 24/11/07, Javier Garcia <red.octobered en gmail.com> escribió:
> > Hola a todos:
> >
> > Un script A  importa un módulo B , que tendría que poner en B para
> > saber cual es el nombre de fichero que contiene el script A es decir,
> > el que lo ha importado.
> >
> > Gracias.
> >
> > --
> > Drink www.UnMundoFeliz.org
> > _______________________________________________
> > Lista de correo Python-es
> > http://listas.aditel.org/listinfo/python-es
> > FAQ: http://listas.aditel.org/faqpyes
> >
>
>
> --
> --------------------------------------
> fpalm en ula.ve
> francisco.palm en gmail.com
>
> cel: 0414 5109177
> tel: 0274 2712106
>
> "Cuando uno es joven, debe ser revolucionario, no sólo rebelarse...
> ser psicológicamente revolucionario significa no aceptar ningún
> modelo."
> K
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>


-- 
Drink www.UnMundoFeliz.org


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