Ich versuche, etwas Python-Code nach C zu portieren, aber ich bin über diese Zeile gestolpert und kann nicht herausfinden, was das bedeutet:
%Vor% Ich verstehe, dass, wenn ' message
' mit <stream:stream
beginnt, etwas angehängt werden muss. Ich kann jedoch nicht herausfinden, wo es angehängt werden soll. Ich habe absolut keine Ahnung was :-1
anzeigt. Ich habe mehrere Google-Suchen ohne Ergebnis durchgeführt.
Würde jemand so freundlich sein zu erklären, was das tut?
Bei der Indexierung der Liste werden alle Elemente [:]
zurückgegeben, mit Ausnahme der letzten -1
. Ähnliche Fragen hier
Zum Beispiel
%Vor%Es funktioniert so
a[start:end]
a[start:]
a[:end]
Dein Fall
a[:]
Es heißt slicing und gibt alles von message
zurück, aber das letzte Element.
Der beste Weg, dies zu verstehen, ist ein Beispiel:
%Vor% Sie können -1
immer durch eine beliebige Zahl ersetzen:
Der letzte Index ist nicht enthalten.
Es heißt slicing
"Gibt ein Segment-Objekt zurück, das den Index-Satz darstellt, der durch den Bereich angegeben wurde (Start, Stopp, Schritt)."
-von diesem Link: Ссылка
Sie werden feststellen, dass es den Bereichsargumenten ähnlich ist und der :
-Teil den gesamten iterablen Wert zurückgibt, also ist -1
alles außer dem letzten Index.
Hier ist eine Grundfunktionalität des Slicens:
%Vor%Folgt diesen Argumenten:
%Vor%Oder
%Vor% Es gibt message
ohne das letzte Element zurück. Wenn message
eine Zeichenfolge ist, löscht message[:-1]
das letzte Zeichen.
Siehe das Tutorial .
Um Ihren Fall direkt zu beantworten:
%Vor% Dies überprüft im Grunde, ob message
mit <stream:stream
beginnt, und wenn das der Fall ist, wird das letzte Zeichen fallengelassen und stattdessen ein ' />'
hinzugefügt.
Da Ihre Nachricht eine XML-Zeichenfolge ist, wird das Element zu einem leeren Element, das sich selbst schließt.