La sentencia if __name__ == ‘__main__’ es bastante usada durante este curso, pero sabes realmente ¿Cuál es su función?, ¿Por qué se usa? En este tutorial te lo voy a explicar.
Dentro de Python, hay ciertas variables y métodos especiales, entre ellos encontramos, __name__ y __main__, estos se caracterizan por empezar ser dunders, es decir, vienen entre dos underscores (__’variable o método’__) existen otros como __doc__ que imprime los docstrings que contengan una clase o método, __dict__ devuelve como un diccionario todos los atributos de una instancia de clase, existen muchos más.
Pero __name__ y __main__ son especiales ya que estos son establecidos antes de que se corra cualquier cosa dentro del programa. Si estamos ejecutando un programa directamente, en el intérprete de Python, __name__ pasa a ser igual a el string ‘__main__’.
Esto nos da ventaja porque cuando importamos un módulo el __name__ del módulo pasa a ser el nombre del archivo.
Una vez que sabemos esto, tenemos la ventaja de que podemos saber si el programa se está ejecutando directamente desde el intérprete o está siendo importado, lo que nos permite tener mayor control y dominio sobre lo que se va a ejecutar.
Entonces, hay código que quieres que se ejecute solamente si se está ejecutando el archivo original, pero que dentro de ese archivo, hay más código que te interesa que sea ejecutado si llega a ser importado.
La sentencia if __name__ == ‘__main__’ nos permite manejar de una mejor forma nuestro código al permitirnos correr ciertas líneas de código si se está ejecutando el programa desde el intérprete, que no se pueden correr si es importado.
Cuando es llamado desde el intérprete __name__ es igual a el string ‘__main__’.
cuando es llamado desde otro programa como un importe __name__ es igual al nombre del archivo.