3 Stimmen

+\ Operator in Python

Was bewirkt der Operator +\ in Python?

Ich bin auf dieses Stück Code gestoßen -

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'+\
's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996'%t +\
'&ignore=.csv').readlines( )

und kann keine Hinweise finden, die dies erklären.

18voto

Ignacio Vazquez-Abrams Punkte 735200

En + ist Zusatz. Die \ am Ende der Zeile setzt die aktuelle Anweisung oder den aktuellen Ausdruck in der nächsten Zeile fort.

11voto

Dave Kirby Punkte 24272

N.B. Die \ Fortsetzung ist in diesem Fall nicht notwendig, da der Ausdruck in Klammern steht. Python ist intelligent genug, um zu wissen, dass eine Zeile fortgesetzt wird, bis alle Klammern, geschweiften Klammern und Klammern ausgeglichen sind.

Unnötige Fortsetzungszeichen sind mir ein Dorn im Auge, und ich lösche sie bei jeder Gelegenheit. Sie machen den Code unübersichtlich, verwirren Neulinge, die sie für eine Art Operator halten, und können unsichtbar gebrochen werden, wenn man versehentlich ein Leerzeichen hinter sie setzt.

Auch die erste + Zeichen ist unnötig - Python verkettet String-Literale automatisch.

Ich würde auch den %-Operator an das Ende des Ausdrucks verschieben und die zweite + so dass die Zeile umgeschrieben werden könnte als:

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'
                     's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996' 
                     '&ignore=.csv' % t).readlines( )

7voto

Gary Punkte 5502

Es handelt sich nicht um einen Operator, sondern nur um den Operator +, gefolgt von der Zeilenfortsetzung \

1voto

John La Rooy Punkte 278961

Sie können Ihren Code folgendermaßen umschreiben

rows=urllib2.urlopen('http://ichart.finance.yahoo.com/table.csv?'
                     's=%s&d=11&e=26&f=2006&g=d&a=3&b=12&c=1996'
                     '&ignore=.csv'%t).readlines()

Der Parser fügt die Zeilen zu einer einzigen zusammen, so dass Sie nicht unnötig Zeit mit dem Zusammenfügen von Zeichenketten zur Laufzeit verschwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X