Wie mache ich mehrzeilige Kommentare? Die meisten Sprachen haben Blockkommentarsymbole wie:
/*
*/
Dungeon-Jäger
Wie mache ich mehrzeilige Kommentare? Die meisten Sprachen haben Blockkommentarsymbole wie:
/*
*/
Aus der akzeptierten Antwort …
Sie können Zeichenfolgen in dreifachen Anführungszeichen verwenden. Wenn sie kein Docstring sind (zuerst in einer Klasse/Funktion/Modul), werden sie ignoriert.
Das stimmt einfach nicht. Im Gegensatz zu Kommentaren werden Zeichenfolgen in dreifachen Anführungszeichen immer noch analysiert und müssen syntaktisch gültig sein, unabhängig davon, wo sie im Quellcode erscheinen.
Wenn Sie versuchen, diesen Code auszuführen …
def parse_token(token):
"""
This function parses a token.
TODO: write a decent docstring :-)
"""
if token == '\\and':
do_something()
elif token == '\\or':
do_something_else()
elif token == '\\xor':
'''
Note that we still need to provide support for the deprecated
token \xor. Hopefully we can drop support in libfoo 2.0.
'''
do_a_different_thing()
else:
raise ValueError
Du bekommst entweder…
ValueError: invalid \x escape
…auf Python 2.x oder…
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape
…auf Python 3.x.
Die einzige Möglichkeit, mehrzeilige Kommentare zu erstellen, die vom Parser ignoriert werden, ist …
elif token == '\\xor':
# Note that we still need to provide support for the deprecated
# token \xor. Hopefully we can drop support in libfoo 2.0.
do_a_different_thing()
Dann können Sie verwenden r'raw string'
— r'\xor' == '\\xor'
.
– IngwerPlusPlus
29. Juni 2016 um 14:13 Uhr
Nun, jeder “echte” mehrzeilige Kommentar muss auch geparst und syntaktisch gültig sein. Kommentare im C-Stil dürfen kein a enthalten */
da es zum Beispiel den Block beendet.
– Benutzer1919238
27. Juli 2016 um 9:31 Uhr
@ dan1111 Das ist offensichtlich, dass der Kommentar keine Endmarkierung enthalten kann, aber das ist die einzige Einschränkung.
– el.pescado – нет войне
29. September 2016 um 5:50 Uhr
'''
“Kommentare” haben mehr Einschränkungen. Sie können nur ganze Anweisungen auskommentieren, während Kommentare Teile des Ausdrucks auskommentieren können. Beispiel: In C können Sie einige Listenelemente auskommentieren: int a[] = {1, 2, /* 3, 4, */ 5};
. Mit mehrzeiliger Zeichenfolge können Sie dies nicht tun, da dies eine Zeichenfolge in Ihre Liste einfügen würde.
– el.pescado – нет войне
29. September 2016 um 5:55 Uhr
unutbu
Python hat eine mehrzeilige String-/Kommentar-Syntax in dem Sinne, dass, wenn es nicht als Docstrings verwendet wird, mehrzeilige Zeichenfolgen keinen Bytecode generieren — so wie #
-vorangestellte Kommentare. Tatsächlich verhält es sich genau wie ein Kommentar.
Wenn Sie andererseits sagen, dass dieses Verhalten in der offiziellen Dokumentation dokumentiert werden muss, um eine echte Kommentarsyntax zu sein, dann würden Sie zu Recht sagen, dass es nicht als Teil der Sprachspezifikation garantiert wird.
In jedem Fall sollte Ihr Texteditor auch in der Lage sein, einen ausgewählten Bereich einfach auszukommentieren (indem Sie eine #
vor jeder Zeile einzeln). Wenn nicht, wechseln Sie zu einem Texteditor, der dies tut.
Das Programmieren in Python ohne bestimmte Textbearbeitungsfunktionen kann eine schmerzhafte Erfahrung sein. Den richtigen Editor zu finden (und zu wissen, wie man ihn benutzt) kann einen großen Unterschied in der Wahrnehmung der Python-Programmiererfahrung ausmachen.
Der Texteditor sollte nicht nur ausgewählte Bereiche auskommentieren können, sondern auch Codeblöcke einfach nach links und rechts verschieben können und den Cursor beim Drücken automatisch auf die aktuelle Einrückungsebene setzen Eingeben. Code-Folding kann auch nützlich sein.
Zum Schutz vor Linkzerfall hier der Inhalt von Guido van Rossums Tweet:
@BSUCSClub Python-Tipp: Sie können mehrzeilige Zeichenfolgen als mehrzeilige Kommentare verwenden. Sofern sie nicht als Docstrings verwendet werden, generieren sie keinen Code! 🙂
Zeichenfolge in dreifachen Anführungszeichen (”’) funktioniert tatsächlich, um mehrzeilige Kommentare zu erfüllen.
– Varun Bhatia
24. Juni 2013 um 6:53 Uhr
Danke.. Verwendet (”’) und (“””), um den Block auszukommentieren, aber es hat mir bei Django-Anwendungen nicht geholfen LEERLAUF und es gibt Optionen wie Region auskommentieren und Regionen auskommentieren (Kürzel: Alt+3 bzw. Alt+4) unter Format Speisekarte. Jetzt ist es einfacher denn je..
– Saurav Kumar
11. Dezember 2013 um 6:53 Uhr
Sie sollten auch die Verwendung einer IDE in Betracht ziehen. Ja, sie sind kräftig, aber wenn sie richtig verwendet werden, können sie die Codierungszeit wirklich verlängern. Ich persönlich habe früher PyDev verwendet und verwende jetzt PTVS (mit Visual Studio). Ich würde PTVS auf jeden Fall empfehlen, da es wirklich schön ist, damit zu arbeiten, da es die oben genannten Funktionen zusammen mit viel mehr enthält – direkte Integration mit virtualenvs und wirklich gutes Debugging, um es gelinde auszudrücken
– Spinne
11. April 2014 um 2:42 Uhr
@HappyLeapSecond Ich denke, Sie sollten es klarstellen und sagen: “Python hat keine wahr mehrzeilige Kommentarsyntax, unterstützt jedoch mehrzeilige Zeichenfolgen, die als Kommentare verwendet werden können.”
– ADTC
18. Juli 2015 um 10:31 Uhr
Was ich möchte, ist eine einfache Möglichkeit, ganze Codeblöcke beim Testen auszukommentieren. Andere Sprachen machen das einfach. Python ist nur ein Schmerz.
– Albert Godfried
26. Februar 2016 um 17:01 Uhr
Peter Mortensen
Es gibt keine Funktion wie einen mehrzeiligen Kommentar. #
ist die einzige Möglichkeit, eine einzelne Codezeile zu kommentieren. Viele von euch antworteten ”’ einen Kommentar ”’ dies als ihre Lösung.
Es scheint zu funktionieren, aber intern '''
in Python werden die eingeschlossenen Zeilen als reguläre Zeichenfolgen verwendet, die der Interpreter nicht wie die Verwendung von Kommentaren ignoriert #
.
Zeichenfolge in dreifachen Anführungszeichen (”’) funktioniert tatsächlich, um mehrzeilige Kommentare zu erfüllen.
– Varun Bhatia
24. Juni 2013 um 6:53 Uhr
Danke.. Verwendet (”’) und (“””), um den Block auszukommentieren, aber es hat mir bei Django-Anwendungen nicht geholfen LEERLAUF und es gibt Optionen wie Region auskommentieren und Regionen auskommentieren (Kürzel: Alt+3 bzw. Alt+4) unter Format Speisekarte. Jetzt ist es einfacher denn je..
– Saurav Kumar
11. Dezember 2013 um 6:53 Uhr
Sie sollten auch die Verwendung einer IDE in Betracht ziehen. Ja, sie sind kräftig, aber wenn sie richtig verwendet werden, können sie die Codierungszeit wirklich verlängern. Ich persönlich habe früher PyDev verwendet und verwende jetzt PTVS (mit Visual Studio). Ich würde PTVS auf jeden Fall empfehlen, da es wirklich schön ist, damit zu arbeiten, da es die oben genannten Funktionen zusammen mit viel mehr enthält – direkte Integration mit virtualenvs und wirklich gutes Debugging, um es gelinde auszudrücken
– Spinne
11. April 2014 um 2:42 Uhr
@HappyLeapSecond Ich denke, Sie sollten es klarstellen und sagen: “Python hat keine wahr mehrzeilige Kommentarsyntax, unterstützt jedoch mehrzeilige Zeichenfolgen, die als Kommentare verwendet werden können.”
– ADTC
18. Juli 2015 um 10:31 Uhr
Was ich möchte, ist eine einfache Möglichkeit, ganze Codeblöcke beim Testen auszukommentieren. Andere Sprachen machen das einfach. Python ist nur ein Schmerz.
– Albert Godfried
26. Februar 2016 um 17:01 Uhr
Visual Studio-Code universeller offizieller mehrzeiliger Kommentarumschalter. Ähnlich wie die Xcode-Verknüpfung.
macOS: Codeblock auswählen und dann ⌘+/
Windows: Wählen Sie Code-Block und dann Strg+/
Ich nehme an, da es sich um eine interpretierte Sprache handelt, ist es sinnvoll, wie im Fall von sh oder bash oder zsh, dass
#
ist die einzige Möglichkeit, Kommentare abzugeben. Ich vermute, dass es einfacher ist, Python-Skripte auf diese Weise zu interpretieren.– Victor Zamanian
14. März 2017 um 16:29 Uhr
Ich weiß, dass diese Antwort alt ist, aber ich bin darauf gestoßen, weil ich dieselbe Frage hatte. Die akzeptierte Antwort funktioniert, obwohl ich nicht genug über Python weiß, um die Feinheiten zu kennen, warum sie möglicherweise nicht korrekt ist (gemäß ADTC).
– Brandon Barney
7. Juli 2017 um 12:55 Uhr
@BrandonBarney Lassen Sie mich Ihnen das Problem erklären. Die akzeptierte Antwort, die ”’ verwendet, erstellt tatsächlich eine mehrzeilige Zeichenfolge, die nichts tut. Technisch gesehen ist das kein Kommentar. Sie können zum Beispiel k = ”’gefälschter Kommentar, echter String”’ schreiben. Dann print(k), um zu sehen, was ADTC bedeutet.
– Pinyotae
6. August 2017 um 3:13 Uhr
Das macht jetzt viel mehr Sinn. Ich bin an vba gewöhnt, wo das Erstellen einer nicht verwendeten Zeichenfolge zu einem Fehler führt. Ich wusste nicht, dass Python es einfach ignoriert. Es funktioniert immer noch zumindest zum Debuggen und Lernen, ist aber keine gute Praxis für die eigentliche Entwicklung.
– Brandon Barney
6. August 2017 um 21:20 Uhr
Wenn Sie im Python-Quellcode eine lange Zeile umbrechen, rückt der Editor sie automatisch ein, um zu zeigen, dass die unterbrochene Zeile wirklich Teil der vorherigen Zeile ist? Soll ich das tun, wenn ich eine lange Pseudocode-Zeile unterbreche?
– alpha_989
31. Januar 2018 um 18:41 Uhr