In Python bezeichnet der Umfang (engl. “scope”) den Kontext, in dem Namen bzw. Variablen definiert und genutzt werden. Es gibt vier verschiedene Umfänge: Lokal, umschließend (engl. “enclosing”), global und built-in.
1. Lokal: Variablen sind nur innerhalb der Funktion sichtbar, in der sie definiert wurden.
2. Umschließend (Enclosing): Wenn eine Funktion innerhalb einer anderen Funktion definiert ist, dann kann die innere Funktion auf die Variablen der äußeren Funktion zugreifen.
3. Global: Variablen, die im Hauptkörper eines Skripts oder direkt in einer Funktion (und nicht in einer inneren Funktion) definiert sind, sind global.
4. Built-in: Namen, die in den eingebauten Modulen von Python definiert sind.
Die “LEGB”-Regel beschreibt die Reihenfolge, in der Python nach Namen sucht: zuerst lokal, dann in umschließenden Bereichen, dann global, dann in den eingebauten Modulen.