
Wenn man Zeichenketten sortieren möchte ist es ganz praktisch, dass 'a' < 'z' ist.

`berechnung()` muss weder die Auswahl (=Zahl) des Benutzers kennen, noch die ganzen Formeln die gerade nicht berechnet werden. Das ist ein Name und eine Indirektion weniger in der Funktion. Es macht die Funktion etwas einfacher. Und man kann sie auch einfacher wiederverwenden oder testen/ausprobieren. Wenn man mal ad-hoc eine `Formular` mit der Funktion testen wollte, zum Beispiel in einer Python-Shell, müsste man das `Formular`-Exemplar ja extra in die globale Liste stecken und die `berechnung()` mit dem Index davon aufrufen. Wenn es Sinn machen würde die Funktion in einem grösseren Programm von mehreren Modulen aus mit verschiedenen `Formular`-Objekten aufzurufen, müssten die alle über den Umweg der globalen Liste und den Index gehen. Und es könnte auch kein Modul etwas aus der Liste entfernen, weil sich dann für andere Module die Indizes der folgenden `Formular`-Objekte ändern würde.
Kurz: In was für einer Datenstruktur man mehrere `Formular`\s verwaltet, kann und sollte der Funktion zur Berechnung *einer* Formel egal sein.