Ich habe festgestellt, dass viele Bibliotheken heutzutage die Verwendung von Strings über Enum-Typ-Variablen für Parameter bevorzugen.Enum vs String als Parameter in einer Funktion
Wo Leute vorher enums verwenden würden, z.B. dateutil.rrule.FR für einen Freitag, es scheint, dass dies in Richtung zur Verwendung von Zeichenfolge verschoben wurde (z. B. 'FRI').
Same in numpy (oder pandas was das betrifft), wobei searchsorted beispielsweise verwendet von Zeichenketten (z.B. Seite = 'links' oder Seite = 'rechts') und nicht als eine definierte ENUM. Zur Vermeidung von Missverständnissen vor Python 3.4 dies leicht als Enum als solche umgesetzt worden sein könnte:
class SIDE:
RIGHT = 0
LEFT = 1
Und die Vorteile von Aufzählungen Variable vom Typ sind klar: Sie sie nicht falsch schreiben kann einen Fehler ohne Anheben, Sie bieten eine angemessene Unterstützung für IDEs usw.
Warum also überhaupt Strings verwenden, statt Enumerationstypen beizubehalten? Macht dies die Programme nicht viel anfälliger für Benutzerfehler? Es ist nicht so, dass Enums einen Overhead erzeugen - wenn überhaupt sollten sie etwas effizienter sein. Wann und warum hat dieser Paradigmenwechsel stattgefunden?