Saltar al contenido principal
Página

Tema 2.2 – Otras recomendaciones

  • Evite dejar espacios en blanco en cualquier lugar. Debido a que generalmente es invisible, puede ser confuso: por ejemplo, una barra invertida seguida de un espacio y una nueva línea no cuentan como un marcador de continuación de línea.

  • Siempre rodear estos operadores binarios con un solo espacio a cada lado: asignación ( = ), la asignación con incremento o decremento ( + = , - = , etc.), las comparaciones ( == , < , > , ! = , <> , <= , > = , in , not in , is , is not ), Booleanos ( and , or , not ). 
  • Si se utilizan operadores con diferente prioridad, considere agregar espacios en blanco alrededor de los operadores con las prioridades más bajas. Use su propio criterio, sin embargo, nunca use más de un espacio y siempre tenga la misma cantidad de espacio en blanco en ambos lados de un operador binario:
1
2
3
4
5
6
# Correcto:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

1
2
3
4
5
6
# Incorrecto:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)

  • Las definiciones de funciones deben usar las reglas normales para los dos puntos y siempre tener espacios alrededor de la flecha -> si está presente.
1
2
3
# Correcto:
def munge(input: AnyStr): ...
def munge() -> PosInt: ...

1
2
3
# Incorrecto:
def munge(input:AnyStr): ...
def munge()->PosInt: ...


  • No use espacios antes o después del signo = cuando se usa para indicar un argumento de una función, o cuando se usa para indicar un parámetro con un valor por defecto:
1
2
3
# Correcto:
def complex(real, imag=0.0):
    return magic(r=real, i=imag)

1
2
3
# Incorrecto:
def complex(real, imag = 0.0):
    return magic(r = real, i = imag)

  • Sin embargo, cuando combine un argumento con un valor por defecto, use espacios alrededor del signo = :
1
2
3
# Correcto:
def munge(sep: AnyStr = None): ...
def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...

1
2
3
# Incorrecto:
def munge(input: AnyStr=None): ...
def munge(input: AnyStr, limit = 1000): ...

  • Las sentencias compuestas (múltiples sentencias en la misma línea) no son recomendables:
1
2
3
4
5
6
# Correcto:
if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()

Es mejor hacer lo del código anterior en lugar de:

1
2
3
# Incorrecto:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

Mientras que en algunas ocasiones es aceptado el colocar un if / for / while con un cuerpo pequeño en la misma línea, nunca implemente esto para sentencias de múltiples cláusulas. También, evite hacer líneas muy largas.

 Lo que no se debe hacer:

1
2
3
4
# Incorrecto:
if foo == 'blah': do_blah_thing()
for x in lst: total += x
while t < 10: t = delay()

Tampoco hacer lo siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Incorrecto:
if foo == 'blah': do_blah_thing()
else: do_non_blah_thing()

try: something()
finally: cleanup()

do_one(); do_two(); do_three(long, argument,
                             list, like, this)

if foo == 'blah': one(); two(); three()

Última modificación: miércoles, 16 de marzo de 2022, 12:08