2010-10-25 5 views
8

Creo que cada código de Python ha visto PEP 8. La parte que sobresale para mí es:¿Es malo que no sigo PEP 8 y ​​corte mis líneas a 79 caracteres?

Limit all lines to a maximum of 79 characters. 

estoy sentado aquí en un monitor de pantalla ancha y codificación derecha por la pantalla. No estoy codificando en una terminal y no planeo codificar en una terminal. Por lo tanto, no tengo problemas con los límites de la línea de caracteres.

¿Cuántas personas realmente siguen este límite? ¿Todavía lo sigues si no estás codificando en un terminal de límite de 80 caracteres? ¿Es malo que no lo sigo?

Odio cómo esta restricción es aparte de 'la guía de estilo' para Python>. <

+1

http://stackoverflow.com/questions/3955903#3956014 –

+2

me gusta no líneas súper largas, pero 79 caracteres es demasiado bajo (especialmente con el enfoque de hoy en las pantallas que son el doble de ancho que son altas). También puede crear código ilegible en sí mismo, así que diría que llegue a un acuerdo con las otras personas con las que trabaja y trabaje con eso. Tiendo a trabajar con alrededor de 132 caracteres. –

+1

Casi la única vez que importa es cuando está usando Putty en Windows y el terminal de 80 caracteres de braindead wide. O editando en Nano sin un ajuste de palabras. ¿Esto importa, sin embargo? Realmente no. Tenga en cuenta que PEP 8 fue escrito originalmente en 2001. – JAL

Respuesta

5

Me resulta difícil leer texto que abarca más de 80 caracteres. Mi ojo tiende a perder la fila mientras retrocede al margen izquierdo. Entonces, en cierto sentido, no es una restricción debido a tener que ver el código en un terminal (o una ventana de cmd o xterm), pero es un mandato de legibilidad. Me encuentro rompiendo la regla por uno o dos caracteres a veces, pero en general no me importa. Además, casi nunca tengo que usar el carácter \ continuation, ya que aprovecho la continuación implícita en las listas.

+0

Creo que el código parece confuso cuando se agregan saltos de línea en lugares arbitrarios (como 79 caracteres). El ejemplo de PEP 8 'clase Rectangle', por ejemplo. Miro la primera declaración 'if' y tengo que mirar cada línea para encontrar dónde comienza el bloque de código real. Hay tres líneas de instrucción 'if' y un espacio agregado al bloque de código. Se enfada con mi cabeza. – dave

+2

Me resulta fácil leer esa declaración bastante larga si. Los cortes no son consistentes en la longitud de la línea, pero son consistentes rompiendo siempre con un operador de conjunción. Yo también lucho con eso. Además, con un monitor de pantalla ancha puede poner dos archivos uno al lado del otro, y eso definitivamente es un plus. – Marco

0

Puede hacer lo que quiera si es su código base. Si es de otra persona, debes seguir sus reglas. Google, por ejemplo, tiene 2 caracteres de sangría, pero PEP 8 dice que debe usar 4 espacios. Creo que es una cita de Guido sobre programación con 2 sangrías espaciales por día y 4 espacios por noche.

Me gusta el límite de caracteres incluso con un monitor de pantalla ancha porque luego puedo poner marcos de código uno al lado del otro.

El estilo del código es realmente todo sobre preferencia personal. La parte importante es la coherencia. Así que escriba su código python de todos modos que lo hace feliz.

+3

Las sangrías de 2 espacios son una forma menor de ofuscación. –

+0

Y 4 sangrías espaciales son una pérdida de espacio. –

+2

Vamos a establecernos en sangrías de 3 espacios, entonces? :) – MaxVT

1

Siempre y cuando no tenga que desplazarse horizontalmente en su monitor ancho (porque lo he visto).

+1

Cualquier editor de programador decente es capaz de manejar la línea envuelta ocasional sin necesidad de desplazamiento horizontal. –

+4

La decisión de IDE de envolver la línea larga es probablemente peor que la decisión humana. – eumiro

9

¿Es usted el único que va a leer el código?

No importa en qué idioma esté programando, se recomienda mantener la longitud de la línea de código. En general, existen 2 tipos de causas de las largas colas:

  1. código anidadas: este tipo de código es difícil de seguir, especialmente si tiene más de 2 niveles de anidamiento. Hay una tendencia a omitir las cláusulas else al leer el código u olvidar qué más es para qué si al leer funciones más largas. Intenta dividir el código en varias funciones para mejorar la legibilidad.

  2. Expresiones complejas: como cuando accedes a un valor de un objeto desde un objeto de un objeto ... O cuando necesitas hacer una sola operación en múltiples valores de 10 lugares diferentes y fusionas todas las llamadas de función y operadores en una sola línea. Mejorará significativamente la legibilidad si usa variables temporales para dividir la lógica en segmentos más pequeños que son más fáciles de comprender. También debe mirar en this.

Dicho esto, ese PEP es solo una guía. Siéntase libre de romperlo cuando sienta que está justificado hacerlo. Si la rompes la mayor parte del tiempo, debes reconsiderar la forma en que escribes el código.

+0

Romper cosas en funciones más pequeñas es otra técnica muy útil. Eso incluye usar una serie de expresiones generadoras. Las expresiones de los generadores también pueden distribuirse de forma agradable en un par de líneas: generalmente forro el 'if' con el' for'. – intuited

0

PEP8 es para humanos pero su programa se ejecutará incluso si no lo sigue.

Si no comparte su código y no tiene previsto hacerlo, haga lo que quiera.

Si planea compartir alguna parte de su código algún día, entonces debe seguir PEP8. Es decir, probablemente a nadie le importe si unas pocas líneas tienen 85 caracteres. Pero el código será difícil de leer si consistentemente tiene más de 200 caracteres de ancho. Si alguna vez lees un periódico, el mismo problema está involucrado cuando el texto se formatea mediante columnas.

La solución al problema de la longitud de línea probablemente no sea el salto de línea arbitrario con los caracteres de continuación, ni el uso de continuación de líneas implícitas al encerrar algunas expresiones entre paréntesis. Probablemente sea para introducir variables intermedias y funciones para tener un código que lógicamente se rompe a menos de 79 caracteres.

Por cierto, es posible que desee atenerse a un límite aún más difícil. Prefiero 72 caracteres porque puedo permitir uno o dos niveles de cotización adicionales dentro de 80 caracteres de mensajes de texto. Si no lo hace, la identificación se romperá en la primera cita.

1

Como con todas las guías de estilo, es solo eso, una guía . Depende de usted si lo sigue o no. El objetivo principal es la coherencia.

Dicho esto, recomendaría adoptar un límite de ~ 80 caracteres por los siguientes motivos.

  1. Hace que el código complicado sea más fácil de leer.
  2. Adquiera el hábito ahora para cuando trabaje en proyectos colaborativos.
  3. Muestra profesionalidad.
+4

"Muestra profesionalidad". ¿Podría ampliar lo que quiere decir con eso? Tiendo a encontrar que las personas invocan "profesionalismo" cuando quieren que otros hagan algo, pero no tienen una razón real por la que deberían hacerlo. –

+3

Si miras los guiones de las películas, todos siguen un formato específico. Entonces, cuando te encuentras con un guión que no sigue este formato, asumes que el escritor es un aficionado. Veo el código de la misma manera. Cuando veo un código que no sigue algunas pautas de estilo rudimentarias, automáticamente asumo que el codificador no tiene mucha experiencia en codificación. Entonces, en este caso, defino "profesionalismo" para decir 1) sabes lo que estás haciendo, y 2) entiendes las prácticas generales de codificación. –

4

PEP 8:

Pero lo más importante: saber cuándo ser inconsistente - a veces el libro de estilo simplemente no se aplica. Cuando en duda, use su mejor juicio.

3

Configuré mi editor para mostrarme la línea límite de 80 caracteres, y la uso como una advertencia, no como una señal de pare. Si puedo continuar la línea ordenadamente a la siguiente línea antes de llegar al límite, lo hago. Sin embargo, si poner en una continuación hace que sea difícil de leer o lo hace confuso, tengo una larga lista. No haré código más difícil de leer solo por el bien de una guía.

1

De ninguna manera !.

✔ mis argumentos:

  • nada más allá de 80 caracteres es parte de la lógica menos importante. (Si es necesario, las personas pueden desplazarse hacia la derecha)
  • Aplicar este envoltorio hace que el código sin importancia se ponga delante de mis ojos
  • Uno tiene que desplazarse verticalmente por distancias enormes que son peores que horizontales.
  • La mayoría de los editores modernos tienen característica suave envoltura que automatiza este para cualquier elección de límite de longitud (no sólo 80)

Linus Torvalds' Argumentos:

  • grep o 'encontrar en El comando de archivos fallará ya que se omitirán ciertos resultados.
  • 24 límite vertical es más doloroso que 80 límite horizontal Char

✔ El veredicto:

It's like try- 
ing to read 
a news arti- 
cle written 
like this. 
+1

Gracias por la referencia. También comparto Linus pensó: "_80 caracteres es causando demasiados cambios idiotas_". – jjmontes

Cuestiones relacionadas