Ich baue gerade eine Anwendung, wo ich über eine Reihe von Schritten, die weitgehend die gleiche Sache machen, iterieren müssen, eine sehr kleine Menge an Code (~ 15 Zeilen) speichern. Die Anzahl der Schritte hängt davon ab, wie das Projekt konfiguriert ist. Daher erscheint es mir ziemlich albern, für jede mögliche Instanz eine eigene Funktion zu erstellen.
In JavaScript würde ich so etwas tun:
%Vor%Gibt es eine Möglichkeit, etwas Ähnliches in Python zu machen? Das einzige, woran ich denken kann, ist ungefähr so:
%Vor%Das scheint einfach schrecklich ineffizient zu sein, wenn ich eine signifikante Anzahl von Schritten habe. Gibt es dafür einen besseren Weg?
Es sieht so aus, als gäbe es keine Möglichkeit, dies in Python zu tun, eine Designentscheidung, die absichtlich getroffen wurde, da sie als unpythonisch abgetan wurde. Naja, es sieht so aus, als würde ich die Methoden definieren und dann manuell zu einer Liste hinzufügen, um sie zu durchlaufen.
Quelle: Ссылка
Ich gehe typischerweise wie folgt vor. Ich mag diesen Ansatz, weil er dem Code ein Minimum an Tippaufwand hinzufügt. Wenn Sie später eine zusätzliche Methode schreiben, muss an keiner anderen Stelle in der Datei etwas geändert werden.
%Vor% Jede Methode wird in Python automatisch in ein Dictionary geschrieben, und dir()
ermöglicht uns den Zugriff darauf.
Haftungsausschluss. Es gibt mehrere Alarmglocken, die bei dem Anblick von "eval" im Kopf des durchschnittlichen Fußgaenger-Eiferers beginnen und einige sogar Anfälle haben. Lassen Sie sie sich vor eval schützen, indem Sie stattdessen einen Reflexionsmechanismus verwenden (der sie vielleicht weniger lesbar macht, aber immer noch wert ist, da ihnen nicht vorgeworfen werden kann, "eval" zu verwenden).
Tags und Links python javascript arrays data-structures dictionary