Python ist eine interpretierte Programmiersprache, die Design-Time -Optimierung bietet durch die Verwendung von dynamischen Funktionen . Dynamische Funktionen können Teile des Codes , um Funktionen zu generieren und anschließend rufen Sie während der Laufzeit . Wenn sie ordnungsgemäß umgesetzt werden , zur Verbesserung der dynamischen Funktionen die Lesbarkeit des Codes , verkürzen ausführbare Länge und kann sogar in Zeit und Speicher Verbesserungen während der Programmausführung führen. History
Python und anderen Programmiersprachen implementieren traditionell statischen Code . Bei dieser Methode der Programmierung, schreibt ein Programmierer Code , die von Benutzern ausgeführt wird, aber der Code nicht und kann nicht geändert werden selbst auf Benutzereingaben oder Wechselsystem Ereignisse anzupassen. Eine neue Art der Codierung Fähigkeit , die so genannte dynamische Methoden oder selbst ändernden Code ermöglicht das Programm selbst zu verändern , um tatsächlich seine eigene Logik . Dynamische Funktionen in Python sind ein Beispiel für nicht-persistente Modifikation , das heißt, entwickelt ein Programmierer einen vorgegebenen Rahmen , die statisch bleibt in der Source-Code , und später, ruft der dynamischen Funktion Rahmen nur temporär verändern die Ausführung des Codes
Umsetzung
Python implementiert dynamische Funktionen unter dem Stichwort " Lambda " durch die Funktion Logik gefolgt, um den Rahmen und die " Karte " Schlüsselwort, um die dynamische Funktion später in der Definition zu erstellen Code. Die Kombination dieser Schlüsselwörter Ergebnisse in run-time Kontrolle darüber, welche Funktionen ausgeführt und kompiliert werden im Speicher. Auf der Back-End , weist der " Lambda " keyword einen Rahmen in Erinnerung. Wenn eine " Karte " keyword läuft , füllt sich der Code in den Rahmen mit den angegebenen Werten , und ordnet eine anonyme Funktion im Speicher mit dem angegebenen Eingang .
Optimization
Dynamische Funktionen in Python bieten enorme Speicher Verbesserungen gegenüber statischen Funktionen . Definition von Funktionen ( minus der statische Rahmen der Funktion ) in einer Datei oder Variablen gespeichert werden , oder auch über das Netz gegenüber dem Code übertragen werden , eine Verbesserung der Flexibilität . Wenn eine dynamische Funktion nicht mehr vom Programm benötigt wird, kann der Programmierer unallocate die Erinnerung von der Funktion verwendet , das spart System-Ressourcen , die sonst durch das Programm wurden gehortet würden .
Komplikationen
Kritiker von dynamischen Methoden und selbstmodifizierenden Code häufig Bedenken hinsichtlich der Lesbarkeit des Codes , den Verlust von Effizienz und unvorhersehbaren Ergebnissen führen. Eine kleine Untergruppe von Situationen gibt , wo dynamische Funktionen geeignet sind - dh bei der Implementierung mehrerer Funktionen mit ähnlichen Logik, die leicht abstrahiert und serialisiert werden . Mangelhafte Umsetzung oft zu chaotisch -Code, der komplexer als wenn der Programmierer hatte statischen Funktionen verwendet aussieht. Entwickler müssen Anwendbarkeit potenziellen Speicher Gewinne oder Verluste , und die Komplexität des Codes vor der Implementierung dynamischer Funktionen zu betrachten.