2013-02-08 3 views
12

Inline-Kommentare zu mehrzeiligen String Zuweisungen hinzufügen Wie Kommentare zu mehrzeiligen Zuweisungen in Python schreiben, in C mit der Syntax möglich ist:Wie in Python

char sc[] = "\x31\xdb"     /* xor %ebx, %ebx  */ 
      "\x31\xc9"     /* xor %ecx, %ecx  */ 
      "\xb8\x46\x00\x00\x00"  /* mov $0x46, %eax  */ 
      "\xcd\x80"     /* int $0x80   */ 
      "\x31\xdb"     /* xor %ebx, %ebx  */ 
      "\xb8\x01\x00\x00\x00"  /* mov $0x1, %eax  */ 
      "\xcd\x80";     /* int $0x80   */ 

aber das gleiche in Python entkam Zeilenumbrüche mit

sc = "\x31\xdb" \ # xor %ebx, %ebx 
    "\x31\xc9" \ # xor %ecx, %ecx 
    "…" 
+0

Ich verstehe nicht, was die Frage/Problem ist. Die letztere Syntax sieht als gültige Python-Kommentarsyntax aus. Es ist die Zeilenfortsetzung, die falsch ist. – millimoose

+0

Warum? Was ist das eigentliche Problem, das Sie versuchen zu lösen? –

+2

Es ist eine echte Frage. Ich verstehe, was er fragt. Er bittet um eine Möglichkeit, einen Kommentar in die Mitte einer (fortgesetzten) Zeile zu schreiben. Dies kann mit einem Blockkommentar in C/C++ geschehen. ** Es gibt keine solche Funktion in Python **, also ist die einzige Lösung (und es ist eine gute), den Code mit Klammern zu versehen, wie in der akzeptierten Antwort. HINWEIS: Dreifache Anführungszeichen können als Blockkommentare in Python verwendet werden, aber nur in einer separaten Zeile: Wenn '' "" ist dies ein Kommentar? "" Am Ende der Zeile (vor dem umgekehrten Schrägstrich), wird es sein wie eine Zeichenfolge im Code behandelt. In diesem Code würde an die gewünschte Zeichenfolge angehängt werden. – ToolmakerSteve

Antwort

13

Sie können

sc = ("\x31\xdb"  # xor %ebx, %ebx 
     "\x31\xc9"  # xor %ecx, %ecx 
     "…") 

schreiben, wenn Sie wollen.

+2

+1, Verwenden von Klammern, um implizierte Zeilenfortsetzung zu erhalten, ist hier die beste Option. –

+5

@Lattyware Oder irgendwo wirklich. Backslash Line Fortsetzungen sind Weird And Fiddly (tm). – millimoose

+0

(Und Sie verlieren Editor Hervorhebung, die Ihnen sagt, wo die Zeile wirklich endet.) – millimoose