def ·
Parameter / *args / **kwargs ·
return ·
lambda ·
global / nonlocal ·
import / from / as / __name__
Funktionen strukturieren Code, machen ihn wiederverwendbar und testbar. Module erlauben die Organisation von Code in separaten Dateien und die Nutzung von Bibliotheken.
def definiert eine Funktion. Der Codeblock wird eingerückt und erst bei Aufruf ausgeführt. Funktionen können Parameter entgegennehmen und Werte zurückgeben.
| Bestandteil | Beschreibung |
|---|---|
| def | Schlüsselwort für Funktionsdefinition |
| name | Funktionsname (Bezeichner) |
| (...) | Parameterliste (optional) |
| : | Doppelpunkt nach der Signatur |
| Einrückung | 4 Leerzeichen (PEP 8) |
meine_funktion). Docstrings mit """...""" dokumentieren die Funktion.
Parameter-Arten: Positional, Keyword, Variable (*args) und beliebige Schlüsselwort-Argumente (**kwargs). Seit Python 3.8 gibt es auch Keyword-Only-Parameter.
| Syntax | Beschreibung |
|---|---|
| def f(a, b): | Positionale Parameter (Reihenfolge wichtig) |
| def f(a, b=0): | Default-Werte (optional) |
| def f(a, b, *args): | *args sammelt restliche positionale Argumente |
| def f(a, b, *, c): | Keyword-Only (c muss als Keyword übergeben werden) |
| def f(**kwargs): | **kwargs sammelt beliebige Keyword-Argumente |
*args und **kwargs sind Konventionen – Sie können andere Namen verwenden, aber diese sind weit verbreitet und leicht verständlich.
return beendet die Funktion und gibt einen Wert zurück. Ohne return oder mit return ohne Wert wird None zurückgegeben. Mehrere Werte werden als Tupel zurückgegeben.
lambda erstellt eine anonyme Funktion in einer Zeile. Sie können nur einen Ausdruck enthalten (keine Statements) und werden oft für kurze Callbacks oder Schlüsselfunktionen verwendet.
def definieren – das ist lesbarer und leichter zu testen.
global erlaubt das Ändern einer globalen Variable innerhalb einer Funktion. nonlocal (für verschachtelte Funktionen) erlaubt das Ändern einer Variable im umschließenden Scope.
global nach Möglichkeit – es macht Code schwerer verständlich und fehleranfällig. Nutzen Sie stattdessen Parameter und Rückgabewerte.
Module sind Python-Dateien, die Funktionen, Klassen und Variablen enthalten. Mit import werden sie in andere Skripte eingebunden. __name__ gibt den Modulnamen an.
| Syntax | Beschreibung |
|---|---|
| import modul | Komplettes Modul importieren |
| import modul as alias | Mit Alias (kürzerer Name) |
| from modul import name | Nur bestimmte Namen importieren |
| from modul import * | Alle Namen importieren (vermeiden!) |
| import modul.submodul | Untermodul importieren |
if __name__ == "__main__":-Guard erlaubt es, Code nur auszuführen, wenn das Skript direkt gestartet wird – nicht beim Import als Modul.
def
*args
return
lambda
global
import
def func(a, b=0): return a + b ·
lambda x: x**2 ·
import math as m