Fachkonzept - Schnittstelle

Schnittstelle einer Funktion

Die Schnittstelle einer Funktion legt sämtliche Informationen fest, die man kennen muss, um die Funktion benutzen zu können.

Man kann diese Informationen natürlich der Funktionsdefinition entnehmen. Oft will man aber nicht alle Details der Funktionsdefinition genau analysieren, um die erforderlichen Informationen zu gewinnen, sondern die Funktion direkt nutzen. Es reicht dann, Antworten auf die folgenden Fragen zu haben:

Antworten auf diese Fragen liefern die Signatur der Funktion und eine Verhaltensbeschreibung.

Signatur einer Funktion

Die Signatur einer Funktion legt den Namen der Funktion fest sowie die Anzahl, Reihenfolge und Typen ihrer Parameter. Bei Funktionen mit Rückgaben wird zusätzlich der Typ des Rückgabewerts festgelegt.

Als Beispiel betrachten wir die Funktion anzahlTageImMonat mit folgender Funktionsdefinition:

def anzahlTageImMonat(monat, jahr):
    if monat in [1, 3, 5, 7, 8, 10, 12]:
        anzahl = 31
    elif monat in [4, 6, 9, 11]:
        anzahl = 30
    elif schaltjahr(jahr):
        anzahl = 29
    else:
        anzahl = 28
    return anzahl

Die Signatur wird im wesentlichen durch den Funktionskopf beschrieben. Zu einer vollständigen Signatur fehlen noch Angaben über die Datentypen, die bei der Aktualisierung der Parameter zu beachten sind und der Datentyp, der beim zurückgegebenen Funktionswert zu erwarten ist. Wie ergänzen diese Angaben oft mit einem sogenannten Documentation String (als eine Art Kommentar) direkt unter dem Funktionskopf.

def anzahlTageImMonat(monat, jahr):

    """
    monat: natürliche Zahl aus dem Bereich 1..12
    jahr: natürliche Jahr
    return: natürliche Zahl aus dem Bereich 1..31
    """	

    ...

Verhalten einer Funktion

Neben diesen formalen Aspekten muss man natürlich auch wissen, was die Funktion leistet. Man kann das durch eine informelle Beschreibung wie die folgende klären.

Die Funktion anzahlTageImMonat(monat, jahr) bestimmt für die übergebenen Werte für monat und jahr die Anzahl der Tage in diesem Monat im betreffenden Jahr.

Oft ist es günstig, das Verhalten einer Funktion anhand eines oder mehrerer Beispiele zu verdeutlichen, z.B. so:

>>> anzahlTageImMonat(2, 2012)
29

Auch diese Informationen lassen sich gut als Kommentar in eine Funktionsdefinition integrieren.

def anzahlTageImMonat(monat, jahr):
    
    """
    monat: natürliche Zahl aus dem Bereich 1..12
    jahr: natürliche Jahr
    return: natürliche Zahl aus dem Bereich 1..31
    
    Beispiele:
    >>> anzahlTageImMonat(2, 2012)
    29
    """
    
    ...

In Kurzform kann man alle diese Informationen auch mit einen Black-Box-Diagramm verdeutlichen.

Black-Box zur Funktion

X

Fehler melden

X

Suche