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