Python __name__ y __main__
A menudo vemos código de Python como el siguiente:
if __name__ == "__main__":
main()
En Python,__name__y__main__son dos variables especiales relacionadas con la ejecución de módulos y scripts.
__name__y__main__ se usa normalmente para controlar la forma de ejecución del código, especialmente cuando el módulo puede ejecutarse como script independiente o ser importado por otros módulos.
1. La variable __name__
__name__ es una variable incorporada que se utiliza para representar el nombre del módulo actual.
__name__ Su valor depende de cómo se utilice el módulo:
Cuando el módulo se ejecuta como programa principal:__name__el valor se establece en"__main__"。
Cuando el módulo se importa:__name__el valor se establece en el nombre de archivo del módulo (sin incluir.pyla extensión).
Supongamos que hay un archivo module.py:
print(f"模块的 __name__ 值: {__name__}")La salida será:模块的 __name__ 值: __main__
2. El significado de __main__
__main__es una cadena especial que se utiliza para indicar que el módulo actual se ejecuta como programa principal.
__main__Normalmente se usa junto con la variable __name__ para determinar si el módulo se importa o se ejecuta como script independiente.
3. Usoif __name__ == "__main__":de patrones comunes
En Python, una práctica común es agregar el siguiente bloque de código al final del módulo:
Ejemplo
# Este código solo se ejecuta cuando el módulo se ejecuta como programa principal
main()
Este patrón permite que el módulo no ejecute cierto código cuando es importado, y solo lo ejecute cuando se ejecuta como script independiente.
Ejemplo
Supongamos que tenemos un módulo llamado example.py:
Archivo del módulo example.py:
print("¡Saludos desde el módulo example!")
if __name__ == "__main__":
print("El script se está ejecutando directamente.")
greet()
else:
print("El script se importa como módulo.")
Ejecutar example.py directamente
Si ejecutas example.py directamente, la salida será:
该脚本正在直接运行。 来自 example 模块的问候!
En este caso,__name__el valor es "__main__", así queif __name__ == "__main__": el código dentro del bloque se ejecutará.
Importar example.py
Si importas example.py en otro script, por ejemplo:
Ejemplo
import example
example.greet()
La salida será:
该脚本作为模块被导入。 来自 example 模块的问候!
En este caso,__name__el valor es"example" (el nombre del módulo), así queif __name__ == "__main__":el código dentro del bloque no se ejecutará.
Resumen
__name__es una variable incorporada que representa el nombre del módulo actual.Cuando el módulo se ejecuta como programa principal,
__name__el valor es"__main__"。Cuando el módulo se importa,
__name__el valor es el nombre de archivo del módulo.Usar
if __name__ == "__main__":puede controlar que el módulo no ejecute cierto código cuando es importado, y solo lo ejecute cuando se ejecuta como script independiente.