Python / Syntax / Kommentare

Ein Python-Kommentar beginnt bei # außerhalb einer Zeichenkette und reicht bis zum Zeilenende. Für mehrere Zeilen setzen Sie vor jede ein #; dreifache Anführungszeichen erzeugen ein Stringliteral statt einer eigenen Kommentarsyntax. Ein Docstring am Anfang einer Funktion oder ähnlichen Definition dient gesondert der Dokumentation.

Einzeilige Kommentare und # in Strings

Kommentare erklären Absichten und Bedingungen; gewöhnliche Inhalte werden von der Python-Syntax ignoriert. Sie können eine ganze Zeile bilden oder hinter Code stehen. Die genaue Grenze beschreiben die offiziellen Kommentarregeln.

Die vollständigen Beispiele benötigen nur Python 3. Speichern Sie den Code als UTF-8 in comments_example.py und starten Sie python comments_example.py oder gegebenenfalls python3. Ersetzen Sie den Dateiinhalt für die weiteren eigenständigen Beispiele.

# Calculate the total before discounts.
price = 100
quantity = 2  # Number of items
print(price * quantity)

Erwartete Ausgabe:

200

Ein # innerhalb von Anführungszeichen gehört zum String. Entsprechende Texte oder URL-Fragmente werden deshalb nicht als Kommentar abgeschnitten.

print("# This is part of a string")
print("https://example.com/page#section")
# This is part of a string
https://example.com/page#section

Jede Zeile einer längeren Erklärung markieren

Python hat keine separate Blockkommentarsyntax wie /* ... */ in C. Kommentieren Sie jede Zeile und richten Sie die Einrückung am beschriebenen Code aus, damit der Bezug deutlich bleibt.

# The sample uses a fixed discount rate.
# Production rules may depend on the customer.
base_price = 100
discount_rate = 0.1
print(base_price * (1 - discount_rate))
90.0

Zum vorübergehenden Deaktivieren kommentieren Sie die betreffenden Codezeilen; zum Aktivieren entfernen Sie die Markierungen. Editoren automatisieren dies meist mit einem Mehrzeilen-Kommentarbefehl. Bewahren Sie ältere Implementierungen in der Versionshistorie auf, statt dauerhaft auskommentierte Varianten anzusammeln.

Dreifache Anführungszeichen und Docstrings sind Strings

Drei einfache oder doppelte Anführungszeichen bilden ein gegebenenfalls mehrzeiliges Stringliteral. Als erste Anweisung eines Moduls, einer Klasse oder Funktion wird es zum Docstring und über __doc__ und Hilfesysteme zugänglich. Siehe die offizielle Docstring-Erklärung.

def greet(name):
    """Return a greeting for name."""
    return f"Hello, {name}"

print(greet("Ada"))
print(greet.__doc__)
Hello, Ada
Return a greeting for name.

Dieser Wert dokumentiert die Funktion und ist abrufbar, anders als ein gewöhnlicher Erklärungskommentar. Dieselbe Schreibweise speichert auch echte Daten:

notes = """first line
second line"""
print(notes.splitlines())
['first line', 'second line']

Beliebigen Code in dreifache Anführungszeichen einzuschließen macht daraus keinen echten Kommentar. Passende Anführungszeichen im Inhalt können die Syntax beschädigen; die Position kann daraus einen Docstring machen. Zum Deaktivieren verwenden Sie #.

Ein Block nur mit Kommentaren braucht eine Anweisung

Blöcke nach def, if und ähnlicher Syntax benötigen eine tatsächliche Anweisung. Kommentare zählen nicht, weshalb ein reiner Kommentarblock IndentationError auslösen kann. Die wirkungslose pass-Anweisung eignet sich als Platzhalter.

source = "def todo():\n    # Implement later\n"
try:
    compile(source, "example", "exec")
except IndentationError:
    print("IndentationError")

def todo():
    # Implement later
    pass

print(todo())
IndentationError
None

Zunächst wird ungültiger Code in einem String kompiliert und der Fehler abgefangen, damit das Beispiel weiterläuft. Die spätere Funktion ist wegen pass gültig. Ohne ausdrückliche Rückgabe liefert ihr Aufruf None.

Nützliche Erklärungen und besondere Direktiven

PEP bedeutet Python Enhancement Proposal. Die Kommentarhinweise in PEP 8 warnen vor Kommentaren, die dem Code widersprechen. Erklären Sie Entscheidungen, äußere Einschränkungen und wichtige Bedingungen statt offensichtlicher Schritte und aktualisieren Sie Kommentare bei Änderungen. Übliche Inline-Kommentare erhalten mindestens zwei Leerzeichen vor und eines nach #.

Manche Kommentare haben für Werkzeuge oder die Dateiverarbeitung Bedeutung. Eine gültige Codierungsangabe in der ersten oder zweiten Zeile kann das Einlesen beeinflussen; Python 3 verwendet standardmäßig UTF-8. Unterscheiden Sie Linter- und Typprüferdirektiven von Erklärungen und untersuchen Sie Warnungen, bevor Sie diese pauschal unterdrücken.