2012-01-25 9 views
5

Al escribir guiones para uso personal, estoy acostumbrado a hacer esto:Dos variaciones de la función principal de Python

def do_something(): 
    # Do something. 

if __name__ == '__main__': 
    do_something() 

O, también podemos hacer esto:

def do_something(): 
    # Do something. 

do_something()  # No if __name__ thingy. 

sé la primera forma es útil al diferenciar entre importar el guión como un módulo o llamarlo directamente, pero de lo contrario, para guiones que solo se ejecutarán (y nunca se importarán), ¿hay alguna razón para preferir uno sobre el otro?

Respuesta

17

Incluso si el script solo se ejecuta, a veces puede ser útil importarlo de todos modos: en un shell interactivo, mediante herramientas de generación de documentación, en pruebas unitarias o para realizar sincronizaciones. Por lo tanto, el uso rutinario de la forma más general nunca le hará daño.

+0

Gracias, parece una buena razón para seguir el anterior. –

4

La primera forma es solo una buena práctica. Una de las leyes inmutables de escribir programas de computadora es que alguien en el futuro lejano (como justo después de ser asignado a otro proyecto o dejar de fumar o aburrirse manteniendo el código) querrá usar su script "siempre independiente", o partes de es, para algún otro propósito.

Si suponemos que usted es absolutamente un programador de estrellas de rock y que cada personaje de sus archivos fuente está saturado de genio (es, ¿no?), Tiene sentido que alguien más vea su obra de arte y simplemente déjate caer al suelo por tu brillo y querrás usarlo.

Ahora existe la opción de hacer que cortar y pegar su código en un archivo con su nombre en la parte superior, que es muy poco seco y hace que la contribución de su extraordinaria mente se acredite a otra persona, o simplemente puede agregar ese pequeño bloque de código y dejar que ellos importen su módulo y usar directamente la clase o función que les hizo darse cuenta de lo muy, muy poco que realmente sabían sobre la programación antes de que la encontraran.

¡Su elección!

+0

Y, como dijo Sven, probando! –

+0

Así es, gracias por sus opiniones. –

Cuestiones relacionadas