Google tiene un tutorial de Python, y describen código repetitivo como "lamentable" y proporcionar este ejemplo:Código "Boilerplate" en Python?
#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print 'Hello there', sys.argv[1]
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
código repetitivo Ahora, he oído que se describe como "código de parecer repetitivo que aparece una y otra vez para obtener algún resultado que parezca que debería ser mucho más simple "(example).
De todas formas, en Python, la parte considerada código "repetitivo" del ejemplo anterior era:
if __name__ == '__main__':
main()
Ahora, mis preguntas son las siguientes:
1) ¿Tiene el código repetitivo en Python (como el ejemplo proporcionado) toma la misma definición que la definición que proporcioné? Si es así, ¿por qué?
2) ¿Es necesario este código? Me parece que el código se ejecuta independientemente de que haya un método principal. ¿Qué hace que usar este código sea mejor? ¿Es aún mejor?
3) ¿Por qué usamos ese código y qué servicio proporciona?
4) ¿Esto ocurre en Python? ¿Hay otros ejemplos de "código repetitivo"?
Ah, y solo una pregunta fuera de tema: ¿necesita import sys
para usar argumentos de línea de comandos en Python? ¿Cómo maneja tales argumentos si no está allí?
'sys' existe ya sea que lo importe o no. Simplemente no puede usarlo en su código si no lo hace. –
Solo un comentario sobre este código repetitivo específico, siempre debe usar '#!/Usr/bin/env python' en lugar de'! #/Usr/bin/python' porque esto obtiene la versión de python específica del usuario/entorno. Esto es preferible porque es posible que el usuario tenga python llamado algo más o que se instale en una ubicación que no sea/bin aunque normalmente ninguno de estos dos factores es verdadero. Sin embargo, como alguien que ha lidiado con errores derivados de esto, puedo decir que son extremadamente frustrantes. Es como la diferencia entre codificar una ruta difícil o usar una relativa. – guribe94
Por ejemplo, los metadatos para Python 2 y 3, eche un vistazo a [python-boilerplate.com] (https://www.python-boilerplate.com) –