04 Kommentare

1 Ein- und Mehrzeilige Kommentare

# Line comment

'''
Multi 
line 
comment
'''

"""
Multi 
line 
comment 
(wird hauptsächlich für Docstrings verwendet)
"""

2 Docstrings

2.1 Google-Style

Dies ist das Google-Dokumentationsformat. Es ist einfach zu lesen und wird oft in größeren Projekten verwendet.

def addiere(a: int, b: int) -> int:
    """
    Addiert zwei Zahlen und gibt das Ergebnis zurück.

    Args:
        a (int): Die erste Zahl.
        b (int): Die zweite Zahl.

    Returns:
        int: Die Summe der beiden Zahlen.

    Raises:
        TypeError: Falls einer der Eingaben kein Integer ist.
    """
    if not isinstance(a, int) or not isinstance(b, int):
        raise TypeError("Beide Werte müssen vom Typ int sein.")
    return a + b

Vorteile:

  • Leicht verständlich
  • Strukturierte Abschnitte (Args, Returns, Raises)

2.2 NumPy-Style

def dividiere(a: float, b: float) -> float:
    """
    Dividiert zwei Zahlen.

    Parameters
    ----------
    a : float
        Die erste Zahl.
    b : float
        Die zweite Zahl.

    Returns
    -------
    float
        Das Ergebnis der Division.

    Raises
    ------
    ZeroDivisionError
        Falls `b` gleich Null ist.
    TypeError
        Falls einer der Eingaben kein Float oder Int ist.
    """
    if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
        raise TypeError("Beide Werte müssen Zahlen sein.")
    if b == 0:
        raise ZeroDivisionError("Division durch Null ist nicht erlaubt.")
    return a / b

Vorteile:

  • Besonders gut für wissenschaftliche Bibliotheken (NumPy, SciPy, Pandas)
  • Strukturiert mit Abschnittsüberschriften (Parameters, Returns, Raises)

2.3 reStructuredText (reST)

Dieses Format wird in Sphinx-Dokumentationen häufig verwendet.

def multipliziere(a: float, b: float) -> float:
    """
    Multipliziert zwei Zahlen.

    :param a: Die erste Zahl.
    :type a: float
    :param b: Die zweite Zahl.
    :type b: float
    :return: Das Produkt von a und b.
    :rtype: float
    :raises TypeError: Falls einer der Eingaben kein Float ist.
    """
    if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
        raise TypeError("Beide Werte müssen Zahlen sein.")
    return a * b

Vorteile:

  • Unterstützt von Sphinx für automatisch generierte Dokumentationen
  • Klar strukturierte Parameter (:param, :return, :rtype, :raises)

2.4 Vergleich

Format Vorteile Geeignet für
Google Einfach zu lesen, klare Struktur Allgemeine Python-Projekte
NumPy Wissenschaftliche Standards Data Science, ML, Forschung
reST (Sphinx) Unterstützt in automatisierten Dokus Große Dokumentationen, APIs