Entendiendo la Función Main en Python: Guía Práctica de def main()
¿Qué es la Función Main en Python?
La función main en Python marca el punto de entrada de un programa. Cuando un script se ejecuta directamente, el intérprete ejecuta el código secuencialmente. El código dentro de def main() solo se ejecuta si el script es el módulo principal, no cuando se importa en otro lugar.
Recorramos un ejemplo claro.
Ejemplo 1: Definiendo main()
def main():
print("Hello World!")
print("Guru99")
Ejecutar este archivo imprime solo Guru99. La línea Hello World! permanece dentro de main() y nunca se llama.
Para ejecutar main() cuando el script corre como programa principal, debe protegerlo con:
if __name__ == "__main__":
main()
Ahora el script se comporta como se espera.
Ejemplo 2: Protección Correcta
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
Cuando ejecuta este archivo, la consola muestra:
Hello World!
Guru99
¿Por qué funciona esto? El intérprete establece la variable especial __name__ a "__main__" cuando un archivo se ejecuta directamente. La protección verifica esa condición antes de llamar a main().
El Rol de __name__ y Módulos
Entender __name__ es esencial para escribir código reutilizable.
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Valor en variable integrada name es: ", __name__)
Ejecutar el archivo directamente imprime los dos mensajes y __name__ como "__main__". Si importa este script como módulo:
import mainfunction
print("done")
verá solo done y __name__ reflejará el nombre del módulo, por lo que main() no se ejecuta automáticamente.
En resumen:
- Ejecución directa:
__name__ == "__main__"→main()se ejecuta. - Importación como módulo:
__name__ != "__main__"→main()se omite.
Python 3 no requiere if __name__ == "__main__": para scripts simples, pero usar la protección es una mejor práctica, especialmente cuando el archivo puede ser reutilizado. En Python 2, la sintaxis permanece igual, pero las sentencias print difieren:
def main():
print "Hello World!"
if __name__ == "__main__":
main()
print "Guru99"
En Python 3, también puede escribir:
def main():
print("Hello World!")
main()
print("Guru99")
Recuerde: mantenga siempre la indentación adecuada después de la línea def main(): para evitar errores.
python
- Funciones lambda en Python: Guía práctica de funciones anónimas
- Generadores en Python: Iteración Eficiente y Casos de Uso Avanzados
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando Decoradores en Python: Mejora Funciones con Técnicas Expertas
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Python len(): Guía Práctica para Medir Longitud de Objetos
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos
- Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
- Dominando yield en Python: Generadores vs Return – Guía práctica