2008-12-10 20 views
108

En python ¿generalmente usa PEP 8 -- Style Guide for Python Code como sus estándares/directrices de codificación? ¿Hay otros estándares formalizados que prefieras?Estándares/mejores prácticas de codificación de Python

+1

//, La solicitud de "preferencias del público" puede parecer inofensiva, al principio, pero convierte Stackoverflow en un mecanismo de votación, una especie de democracia pervertida de unos pocos contra muchos. "¿Hay alguna otra ________ que prefieras?" es, literalmente, pedirles una preferencia, no un hecho. –

Respuesta

142

"En python, ¿generalmente utiliza PEP 8 - Guía de estilo para Python Code como sus normas/directrices de codificación? ¿Hay otros estándares formalizados que prefiera?"

Como se ha mencionado por usted sigue PEP 8 para el texto principal, y PEP 257 para convenciones docstring

Junto con Python guías de estilo, le sugiero que consulte el siguiente:

  1. Code Like a Pythonista: Idiomatic Python
  2. Common mistakes and Warts
  3. How not to write Python code
  4. Python gotcha
1

Sí, trato de seguirlo lo más cerca posible.

No sigo ningún otro estándar de codificación.

3

Lo sigo de manera extremadamente rigurosa. El único dios antes de PEP-8 son las bases de código existentes.

+1

y me gustaría señalar que PEP-8 incluso tiene en cuenta las bases de códigos existentes. –

4

PEP 8 es buena, la única cosa que me gustaría que llegó con más fuerza en la era de la guerra santa aquí-contra-espacios.

Básicamente, si está iniciando un proyecto en python, debe elegir pestañas o espacios y luego disparar a todos los delincuentes a primera vista.

+4

¿Pestañas o espacios? De PEP8: Los espacios son el método preferido de sangría. Las pestañas deben usarse únicamente para mantener la coherencia con el código que ya está sangrado con pestañas. –

+0

//, PEP8 es bastante claro que los espacios son el método preferido de indentación, Ryan. Downvoted. Sin embargo, ¿actualizarías la respuesta? –

5

Para añadir a bhadra'slist de guías idiomáticas: presentación de

Pedido Anthony Baxter en Effective Python Programming (de Oson 2005).

un extracto:

# dict's setdefault method turns this: 
if key in dictobj: 
    dictobj[key].append(val) 
else: 
    dictobj[key] = [val] 
# into this: 
dictobj.setdefault(key,[]).append(val) 
8

me quedo con PEP-8 muy de cerca.

Hay tres cosas específicas que no me molestan en cambiar a PEP-8.

  • Evite los espacios en blanco inmediatamente entre paréntesis, corchetes o llaves.

    sugerida: spam(ham[1], {eggs: 2})

    hago esto de todos modos: spam(ham[ 1 ], { eggs: 2 })

    ¿Por qué?Más de 30 años de hábito arraigado están acurrucados contra nombres de funciones o (en C) palabras clave. Comenzando con Fortran IV en los años 70.

  • Use espacios alrededor de operadores aritméticos:

    sugerida: x = x * 2 - 1

    que hago esto de todos modos: x= x * 2 - 1

    ¿Por qué? La ciencia de la programación de Gries sugirió esto como una forma de enfatizar la conexión entre la asignación y la variable cuyo estado está siendo cambiado.

    No funciona bien para asignaciones múltiples o asignaciones aumentadas, para eso uso muchos espacios.

  • Para los nombres de función, nombres de los métodos y la instancia de nombres de variables

    sugerida: minúsculas, con palabras separadas por guiones como sea necesario para mejorar la legibilidad.

    hago esto de todos modos: camelCase

    ¿Por qué? Más de 20 años de hábito arraigado de camelCase, comenzando con Pascal en los años 80.

+1

¡Es un gran contenido! http://codingstyleguide.com o http://codereview.stackexchange.com sería un buen lugar para tener estas excelentes pautas. – Pompeyo

1

Sigo el PEP8, es una gran pieza de estilo de codificación.

Cuestiones relacionadas