Python Función y método principal: Entienda def Main()
⚡ Resumen inteligente
Python La función principal marca el punto de partida donde el intérprete comienza a ejecutar un programa. Definida con `def main()` y combinada con la condición `if __name__ == “__main__”`, separa el código de módulo reutilizable de la ejecución de scripts independientes.

¿Qué es Python ¿Función principal?
El Python función principal es el punto de partida de cualquier programa. Cuando se ejecuta el programa, Python El intérprete ejecuta el código secuencialmente. La función principal se ejecuta solo cuando se ejecuta como un Python programa. No ejecutará la función principal si se importa como módulo.
¿Qué es la función def main() en PythonPara entender esto, considere el siguiente código de ejemplo, que forma parte del núcleo. Python programación lo esencial:
def principal() Ejemplo 1
def main():
print ("Hello World!")
print ("Guru99")
Aquí tenemos dos piezas impresas: una está definida dentro de la función principal que es “Hello World!” y la otra es independiente, que es “Guru99”. Cuando ejecutas la función def main ():
- Solamente "Guru99” imprime
- y no el código "¡Hola mundo!"
Es porque no declaramos la convocatoria. función “if__nombre__== “__principal__”.
Es importante que después de definir la función principal, llames al código mediante if__name__== “__main__” y luego ejecutes el código, solo así obtendrás la salida “¡hola mundo!” en la consola de programación. Considera el siguiente código
def principal() Ejemplo 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruEn este caso se imprime 99.
Aquí está la explicación,
- Cuando Python El intérprete lee un archivo fuente, ejecutará todo el código que se encuentra en él.
- Cuando Python ejecuta el "archivo fuente" como programa principal, establece la variable especial (__name__) para que tenga un valor ("__main__").
- Cuando ejecuta la función principal en Python, leerá la declaración "if" y comprobará si __name__ es igual a __main__.
- In Python “si__nombre__== “__principal__” le permite ejecutar el Python archivos ya sea como módulos reutilizables o programas independientes.
¿Por qué usar una función main() en Python?
Python No te obliga a escribir una función principal, pero los desarrolladores experimentados la usan en casi todos los scripts no triviales. El patrón `def main()` aporta orden al archivo y hace que el código sea seguro para reutilizar. Estas son las principales razones para usarlo:
- Punto de entrada claro: La función main() le indica a cualquier lector exactamente dónde comienza el programa, por lo que la lógica es fácil de seguir.
- Módulos reutilizables: Code protegido por if __name__ == “__main__” se ejecuta solo en ejecución directa, por lo que otros archivos pueden importar sus funciones sin efectos secundarios.
- Ámbito local: Las variables creadas dentro de main() permanecen locales, lo que evita conflictos accidentales con nombres globales en otras partes del módulo.
- Pruebas más sencillas: Aislar la lógica en main() permite que un conjunto de pruebas la llame directamente y compruebe el resultado.
- Convención compartida: La función main() es una señal ampliamente reconocida del punto de entrada del programa, lo que mejora la mantenibilidad entre los diferentes equipos.
En resumen, una función main() es opcional en Pythonpero permite que los programas más grandes sean legibles, comprobables y seguros para importar.
La variable __nombre__ y Python Módulo
Comprender la importancia de la variable __name__ en Python método de función principal, considere el siguiente código:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Ahora considere, el código se importa como un módulo.
import MainFunction
print("done")
Aquí está la explicación del código: como C, Python usa == para comparación mientras que = para asignación. Python El intérprete usa la función principal de dos maneras.
ejecución directa:
- __nombre__=__principal__
- if declaración == True, y el script en _main_will se ejecutará
importar como módulo
- __name__= nombre de archivo del módulo
- if declaración == false, y el script en __main__ no se ejecutará
Cuando se ejecuta el código, comprobará el nombre del módulo con "if". Este mecanismo garantiza que la función principal se ejecute solo como ejecución directa, no cuando se importe como un módulo.
Los ejemplos anteriores son Python 3 códigos, si quieres usarlos Python 2. Por favor, considere el siguiente código
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3. No es necesario utilizar if__name. El siguiente código también funciona
def main():
print("Hello World!")
main()
print("Guru99")
Nota: Asegúrese de que después de definir la función principal, deje algo de sangría y no declare el código justo debajo de la función def main(): de lo contrario, dará un error de sangría.
Cómo pasar argumentos de línea de comandos a la Python Función main()
La función main() es el lugar natural para procesar la entrada que el usuario introduce en la línea de comandos. Python Almacena estos valores en la lista sys.argv, que proporciona el módulo sys estándar. El primer elemento, sys.argv[0], es el nombre del script, y cada valor posterior es un argumento proporcionado por el usuario.
El siguiente ejemplo lee e imprime argumentos de línea de comandos desde dentro de una función main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Si guarda el archivo como script.py y ejecuta script de Python.py alfa betaEl programa imprime el nombre del script y la lista ['alpha', 'beta']. Dado que los valores llegan dentro de main(), la lógica se mantiene organizada y es fácil de probar.
Aquí tienes algunos consejos prácticos para trabajar con la entrada de comandos:
- Recorta el nombre del script: Utilice sys.argv[1:] para leer solo los argumentos que el usuario ha escrito.
- Utilice argparse para herramientas reales: El módulo argparse integrado analiza las banderas, las opciones y el texto de ayuda de forma mucho más segura que leyendo sys.argv manualmente.
- Devuelve un código de salida: Envuelve la llamada como sys.exit(main()) para que el valor de retorno de main() se convierta en el estado de salida del proceso.
- Validar anticipadamente: Compruebe el número y el tipo de argumentos en la parte superior de main() antes de ejecutar el resto del programa.
Este patrón convierte un script simple en una herramienta de línea de comandos confiable mientras mantieneping cada paso dentro de una única función main() comprobable.
Python Función main() frente a otros lenguajes de programación
Desarrolladores provenientes de C, C++, o Java a menudo se espera una función main() obligatoria. Python funciona de manera diferente porque es un lenguaje interpretado, por lo que el intérprete simplemente ejecuta un archivo desde la primera línea hasta la última. La función main() en Python Por lo tanto, es una convención más que una regla.
- C, C++, C# y Java: La función main() es un punto de entrada obligatorio. El entorno de ejecución la llama automáticamente y solo puede haber una por programa.
- Python: No se requiere la función main(). La ejecución comienza en la primera línea del archivo, y def main() se ejecuta solo si su código la llama.
- El guardia: El bloque if __name__ == “__main__” da como resultado Python un propósito similar al de un main() compilado al marcar el código que debe ejecutarse solo cuando el archivo es el programa principal.
Así que mientras otros lenguajes imponen un punto de entrada main(), Python Te deja la elección a ti, ofreciendo la misma claridad a través de una convención en lugar de una regla del compilador.




