Escribir scripts de Python en la universidad, ¡además de esto!
¡Escribe un script en Python y agrega esto!
Al escribir scripts de Python, asegúrese de agregar esto
Para aquellos que usan Python, ya sea para mejorar
la eficiencia o para satisfacer necesidades específicas, los scripts de Python son algo común y útil.
Sin embargo, recientemente descubrí un problema que no conocía antes, es decir, si agregar la declaración if_name_=="_main_": en el script tendrá un impacto significativo en la forma en que se ejecuta el script. , y entre ellos hay mucho que aprender.
Malentendidos comunes
Muchos amigos son más informales al escribir guiones simples, se escriben directamente en hojas de papel sin
funciones y se ejecutan en secuencia. Para scripts más complejos, se pueden agregar funciones. Esta
La legibilidad es muy pobre y las personas a menudo no pueden encontrar la secuencia de entrada y ejecución del programa.
La forma recomendada de escribir scripts es agregar las siguientes
declaraciones:
Al escribir scripts de Python, asegúrese de agregar lo siguiente
Leer La mayoría de la gente aquí diría: "¿Qué hay de malo en esto? No importa si lo agregamos o no".
¡No importa!
No te preocupes por descartarlo, ¡analicemoslo detenidamente!
Cuál es el punto
Antes de entrar en detalles sobre la función de if_name_=='_main_', comencemos con un ejemplo visual simple
.
Echemos un vistazo a los resultados de ejecutar area.py:
Al ejecutar la variable PI, la entrada se introduce desde la función train() en const.py
Imprimir, y solo hicimos referencia a la variable, no a la función, por lo que
es esto lo que no queremos ver.
La solución a este problema también es muy simple. Solo necesitamos agregar
una oración en const.py:
Ejecutar area.py nuevamente. El resultado es el siguiente:
Esto es lo que esperamos.
Entrada de programa
El ejemplo anterior muestra que si no hay if_name_=="_main_":
Todo el código en const.py se importa al Se ejecutará el archivo area.py
, pero si se agrega if_name_=="_main_": se ejecutará todo el código en const.py
, y si if_name_==" _main_", entonces solo se ejecutará la parte importada del código. Dado que los módulos se refieren entre sí, diferentes módulos pueden tener tales definiciones,
y solo puede haber un programa de entrada, y qué programa de entrada se selecciona depende del valor de __nombre_.
.