---
kurs:
  - D0009E
tags:
  - programmering
  - python
förkunskaper:
  - "[[Variabler]]"
  - "[[Parametrar]]"
status: true
aliases:
  - Räckvidd
  - Synlighet
---
> **Kurs:** D0009E

---

Scope (räckvidd) bestämmer **var** en variabel är synlig.

## LEGB-regeln

Python slår upp namn i ordningen:

1. **L**ocal — funktionens egna namn
2. **E**nclosing — omgivande funktion
3. **G**lobal — modulnivå
4. **B**uilt-in — `print`, `len`, …

```python
x = 1
def f():
    x = 2          # lokal
    print(x)       # 2
f()
print(x)           # 1
```

## `global` och `nonlocal`

Används för att skriva till en yttre variabel inifrån en funktion (bör användas sparsamt).

## Se även

- [[Variabler]]
- [[Parametrar]]
