Variablen in marimo
marimo hat eigene Regeln für Variablen – globale und lokale Variablen verhalten sich anders als in einem normalen Python-Skript.
In einem normalen Python-Skript können Variablen überall gelesen und verändert werdeb. In marimo ist das anders – jede Zelle hat einen definierten Gültigkeitsbereich.
Globale Variablen (ohne _)
Variablen ohne Unterstrich-Präfix sind in allen Zellen lesbar. Das macht sie ideal für Werte die man in mehreren Zellen benötigt.
Hallo Anna, du bist 25 Jahre alt. In 10 Jahren bist du 35 Jahre alt.
Globale Variablen können von anderen Zellen gelesen, aber nicht verändert werden. Möchte man einen Wert neu setzen, musst man ihn mit demselben Namen in derselben Zelle neu definieren – marimo erkennt Konflikte automatisch und markiert die betroffenen Zellen.
Variablen aus anderen Zellen nicht veränderbar
Eine globale Variable kann in einer anderen Zelle gelesen aber nicht verändert werden. Versuchst man es trotzdem, erkennt marimo den Konflikt und markiert die Zellen rot.
marimo erlaubt es nicht, eine Variable in zwei verschiedenen Zellen zu definieren. Wenn punkte in Zelle 1 definiert ist, darf Zelle 2 keine neue Definition von punkte enthalten – auch keine veränderte. Das ist bewusst so gestaltet, damit der Datenfluss zwischen Zellen immer klar und nachvollziehbar bleibt.
Möchte man mit einem veränderten Wert weiterrechnen, erstellt man eine neue Variable:
15
Lokale Variablen (mit _)
Variablen die mit einem Unterstrich _ beginnen sind nur innerhalb ihrer eigenen Zelle gültig. Andere Zellen können nicht auf sie zugreifen.
Greifst du in einer anderen Zelle auf eine _-Variable zu, erhältst du einen NameError – die Variable existiert ausserhalb ihrer Zelle schlicht nicht.
Praktisches Beispiel
Folgendes Beispiel zeigt den Unterschied in der Praxis: ergebnis ist global verfügbar, _hilfe ist lokal.
Ergebnis: 50.0 Das Ergebnis aus der vorherigen Zelle: 50.0
Übersicht
| Variable | Sichtbarkeit | Veränderbar | Typischer Einsatz |
|---|---|---|---|
name |
alle Zellen | nein | Ergebnisse, Eingabewerte, UI-Elemente |
_name |
nur eigene Zelle | ja | Hilfswerte, Zwischenrechnungen, temporäre Werte |
Nutze _-Variablen für Zwischenrechnungen die andere Zellen nicht brauchen. So bleibt der globale Namespace sauber und man vermeidet unerwartete Abhängigkeiten zwischen den Zellen.