2012-05-24 15 views

Respuesta

53

No romper la url:

# A Foolish Consistency is the Hobgoblin of Little Minds [1] 
# [1]: http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds 
+0

no puede entender por qué esto está upvoted tantas veces. No funciona para mi –

+0

@DmitrySorin: si "no rompa la url" no está claro; sigue el enlace en la respuesta. O si no puede abrir la url; lea la cita directa en [@Cristian Witts 'answer] (http://stackoverflow.com/a/10739989/4279). – jfs

+2

Estoy de acuerdo; sin embargo, PyCharm no lo hace fácil de ignorar (sin mezclar su código con feos '# noinspection LongLine' (y referencias similares) por todas partes. Creo que el problema más grande es que el formato RST tiene la limitación de no poder tiene un salto de línea (que no se muestra) dentro de la URL. –

56

De PEP8

Pero lo más importante: saber cuándo ser inconsistente - a veces el libro de estilo simplemente no se aplica. En caso de duda, use su mejor juicio. Mire otros ejemplos y decida qué se ve mejor. ¡Y no dudes en preguntar!

Dos buenas razones para romper una regla particular:

  • Al aplicar la regla haría que el código menos legible, incluso para alguien que está acostumbrado a la lectura de código que sigue las reglas.

En lo personal, me gustaría utilizar ese consejo, y más bien dejar la URL descriptiva completa en su comentario a la gente.

21

yo diría que lo deje ...

PEP20:

casos especiales no son lo suficientemente especial como para romper las reglas.

Aunque la practicidad supera la pureza.

Es más práctico poder copiar/pegar rápidamente una url y luego eliminar los saltos de línea al pegar en el navegador.

-2

Mi opción sería:

URL = ('http://stackoverflow.com/questions/10739843/' 
     'how-should-i-format-a-long-url-in-a-python-' 
     'comment-and-still-be-pep8-compliant') 
+3

. Demasiado doloroso para copiar pasta de una manera utilizable de esta manera. –

+0

Ese es el código que se ejecutará, no un comentario. –

20

Puede usar el # noqa al final de la línea para detener la ejecución de ese control por parte de PEP8/Flake8. Esto es permitido por PEP8 a través de:

Los casos especiales no son lo suficientemente especiales como para infringir las reglas.

+2

Elegante. Yo uso pyflakes en Vim y no comprometeré un cambio hasta que devuelva cero advertencias del conjunto de reglas acordadas (el requisito de maccabe es más flexible en nuestro caso, pero no el límite de 80 líneas). La forma más corta de decirles a los compañeros de trabajo: No dividí multilínea porque no tiene sentido hacerlo. –

+2

Gracias @Sardathrion, debería tener más votos ya que en realidad aporta una solución práctica. – ezdazuzena

5

Si su están utilizando flake8:

""" 
long-url: http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url-in-a-python-comment-and-still-be-pep8-compliant 
""" # noqa 
Cuestiones relacionadas