__main__

Hernan Martinez Foffani hernan en orgmf.com.ar
Jue Mayo 9 17:06:05 CEST 2002


__name__ es un atributo que poseen casi todos los
objetos en python. inclusive un modulo de codigo
fuente.
cuando se ejecuta el codigo fuente como:
	$ python hello_cgi.py
el atributo __name__ contiene la cadena "__main__"

pero dentro del intreprete de comandos contiene
el nombre del modulo, en este caso: 'hello_cgi'

>>> import hello_cgi.py
>>> hello_cgi.__name__
'hello_cgi'
>>>

(en este caso la funcion main() no es ejectucada!)

python no define un punto de entrada de ejecucion.
todas las sentencias se ejecutan en caida. con
el truco del __name__ el programador elije el
punto de entrada que mas le conviene.
además de esa forma el mismo programa puede ser
ejecutado desde el prompt del sistema operativo y
desde dentro del interprete de comandos.
es muy práctico porque un mismo codigo fuente puede
ser aprovechado como biblioteca de clases o funciones y
como programa independiente.




> -----Mensaje original-----
> De: python-es-bounces en aditel.org [mailto:python-es-bounces en aditel.org]En
> nombre de kmilo
> Enviado el: jueves, 09 de mayo de 2002 16:51
> Para: python-es en aditel.org
> Asunto: [Python-es] __main__
>
>
> estuve viendo el hello world en cgi de python
>
> --------------hello_cgi.py------------------------------
> #!/usr/local/bin/python
> # for unix of course
> def main():
> 	print "Content-type: text/html"
>   	print
>    	print "<TITLE> Hello, World!</TITLE>"
>    	print "Hello, World!"
> if (__name__ == "__main__"):
>    	main()
>
> ------------------------------------------------------
>
> que es __name__ ?
> que es __main__?
> y por que los comparan?
>
>
> --
>    --
>   ( ¬)>
>   /  \   Linux, Rock, Python ahh y si vuelvo a comprar, comics.
>   V   )
>     > >
>
> Sended by Sylpheed in SuSe 7.3 Profesional
> Linux user number 269263.
> http://kmiloweb.netfirms.com/
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
>





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