Syntax quirks oder warum ist das gültige Python

8

Warum ist in Python 2.6 die folgende Zeile gültig?

%Vor%

und wenn das gültig ist, warum ist nicht das Folgende:

%Vor%

Das erste Beispiel ist die Verkettung von Strings, das Folgende ist jedoch auch nicht gültig (Gott sei Dank):

%Vor%     
Boris Gorelik 21.12.2009, 15:23
quelle

4 Antworten

20

Dies geschieht Zeichenfolgenliteralverkettung . Wie in der Dokumentation erwähnt, sind folgende Vorteile möglich:

  

Diese Funktion kann verwendet werden, um die   Anzahl der Backslashes erforderlich, um zu teilen   lange Saiten bequem über lange   Linien oder sogar Kommentare hinzuzufügen   Teile von Strings ...

Es wird darauf hingewiesen, dass diese Verkettung zur Kompilierungszeit statt zur Laufzeit ausgeführt wird.

Die Geschichte und die Begründung dahinter und ein zurückgewiesener Vorschlag, das Feature zu entfernen, wird in PEP 3126 .

    
Peter Hansen 21.12.2009, 15:36
quelle
8

my_line = 'foo' 'bar' ist eine Zeichenkettenverkettung.

    
jldupont 21.12.2009 15:24
quelle
6

Vielleicht ist das eine Abstammung von C. In C ist das folgende absolut gültig:

%Vor%

Sie wird vom C Preprozessor (cpp) implementiert, und die in diesem Link angegebene Begründung lautet :

  

Damit können lange Saiten geteilt werden   über mehrere Zeilen und erlaubt auch   Stringliterale, die aus C resultieren   Präprozessor definiert und Makros zu sein   während der Kompilierung an Strings angehängt

    
Eli Bendersky 21.12.2009 16:02
quelle
5

Es ist nicht inkonsistent. Strings und Ganzzahlen haben unterschiedliche Methoden.

Ganzzahlverkettung ist bedeutungslos.

String-Verkettung ist ein bedeutungsvolles Standardverhalten.

    
S.Lott 21.12.2009 15:56
quelle

Tags und Links