2012-09-26 29 views

Respuesta

17

\ al final de una línea simplemente indica que se continuará en la línea siguiente de otra manera que (totalDist +=) elevaría un error ... (También es importante señalar que no puede haber nada después de la barra ... ni siquiera los espacios en blanco)

+= sólo se suma y asigna volver

x = 1 
x += 1 # x is now 2 (same as x = x + 1) 
+3

1. Además, la razón por la que es tan desconocido que la mayoría de la gente no lo sabe es que no tiene que usarlo con mucha frecuencia. En la mayoría de los casos, tiene una expresión que está (o puede ponerse) entre paréntesis, corchetes o llaves, en cuyo caso se continúa automáticamente; todo lo que tienes que hacer es sangrar la siguiente línea correctamente. El único momento en que esto es realmente útil es en casos como este, en los que desea romper inmediatamente después de un operador de asignación. – abarnert

+0

@abarnert Y aun así, creo que la guía de estilo PEP recomienda usar un paréntesis alrededor de la expresión. – millimoose

+2

@millimoose: una asignación es una declaración, no una expresión, por lo que no se puede envolver en parens. Entonces, si realmente necesita romper inmediatamente después del operador de asignación, no hay alternativa. (Por supuesto, es muy raro que realmente necesites romper inmediatamente después del operador, por ejemplo, podrías simplemente poner en paréntesis todo el rhs, pero ya lo he explicado). – abarnert

7

el \ escapa a la línea de retorno que le sigue inmediatamente (no debe ser cualquier carácter entre el \ y lo implícito \n).

También hay algunas otras excepciones; nuevas líneas se ignoran cuando encerrado en los pares coincidentes de los siguientes:

  • []
  • ()
  • {}

En otras palabras, los siguientes son equivalentes:

a= [1,2,3] 
a = [1, 
    2, 
    3] 
+4

Adición: las líneas nuevas _y la indentación_ se ignoran cuando están rodeadas por paréntesis –

4

La combinación \ fol bajado por nueva línea significa continuación de línea. Puede pensar que \ escapa de la nueva línea, por lo que no tiene el significado habitual de "terminación de línea".

En Python, a menudo puede organizar el código para que \ no sea necesario, por ej.

totalDistance += GetDistance(
        xCoords[i], yCoords[i], 
        xCoords[i+1], yCoords[i+1]) 

aquí, los saltos de línea no terminan la línea porque están dentro del ()

Cuestiones relacionadas