0

Que tal, estoy trabajando con un ejemplo simple de un libro de python, con sockets, y puntualmente luego de declarar 2 funciones, en lo que seria el main se pone lo siguiente:

if __name__ == '__main__':
main()

Mi duda puntualmente es, en que afecta al programa poner, o no poner "if name == 'main':"?. Pregunto porque probe quintandolo, y dejando solo el "main()" y la ejecucion se completaba correctamente, sin afectar al codigo o resultado del programa por el cual fue programado.

Gracias desde ya.

cnfs
  • 1

1 Answers1

3

Te permite reusar código como si fuera un módulo. Me explico mejor con un ejemplo:

Tenemos el siguiente programa:

# cat cuadrado.py
def alCuadrado(var):
    return var * var

if __name__ == '__main__':
    print "Standalone mode!!"
    print "42 al cuadrado es ==", alCuadrado(42)

Este simple programa tiene una función "alCuadrado" que devuelve el cuadrado de un número.

Ahora tenemos otro programa:

# cat code01.py 
import cuadrado

print "Usando cuadrado.py como modulo!"
print ("17 al cuadrado es == %i" % cuadrado.alCuadrado(17))

En dicho código, importamos el primer programa como si fuera un módulo, lo que nos permite usar las funciones definidas en él, pero no ejecutamos su "programa principal":

 # python2 code01.py 
Usando cuadrado.py como modulo!
17 al cuadrado es == 289

# python2 cuadrado.py
Standalone mode!!
42 al cuadrado es == 1764
Alberto
  • 163
  • 8