Python er et tolket programmeringsspråk , som gir design-time optimalisering via bruk av dynamiske funksjoner . Dynamiske funksjoner tillate deler av koden for å generere funksjoner og så deretter ringe dem under kjøring. Når implementert riktig , dynamiske funksjoner forbedre koden lesbarhet , forkorte kjørbar lengde og kan også resultere i tid og minne forbedringer i programmet kjøres . Historie
Python og andre programmeringsspråk tradisjonelt implementere statisk kode . I denne metoden for programmering, skriver en programmerer kode som drives av brukerne , men koden ikke og kan endre seg for å tilpasse seg brukerens input eller skiftende system arrangementer . En ny type koding evne, kalles dynamiske metoder eller selv- modifisere kode gjør selve programmet å faktisk endre sin egen logikk . Dynamiske funksjoner i Python er et eksempel på ikke- vedvarende endring , det vil si utvikler en programmerer et sett rammeverk som vedvarer statisk i kildekoden , og senere , kaller den dynamiske funksjonen rammeverket bare midlertidig endre utføringen av koden
Implementering
Python implementerer dynamiske funksjoner med søkeordet " lambda " etterfulgt av funksjonen logikk for å definere rammene og "kart " søkeord for å lage dynamiske funksjon senere i kode . Kombinasjonen av disse søkeordene resultater i run -time kontroll over hvilke funksjoner kjøres og samlet i minnet. På back- end , fordeler " lambda " søkeord et rammeverk i minnet. Når et "kart " søkeord løper , fyller koden i rammen med de gitte verdier , og tildeler en anonym funksjon i minnet med gitt input .
Optimization
Dynamiske funksjoner i Python tilbyr enorme minne forbedringer over statiske funksjoner. Funksjonsdefinisjonene ( minus den statiske ramme for funksjon) kan lagres i en fil eller variabel, eller til og med bli overført over nettverket og ikke koden , forbedrer fleksibiliteten . Når en dynamisk funksjon ikke lenger er nødvendig av programmet , kan programmereren unallocate minnet som brukes av funksjonen , frigjøre verdifulle systemressurser som ellers ville ha blitt hoarded av programmet.
Komplikasjoner
med
Kritikere av dynamiske metoder og selv- modifisere kode ofte reiser spørsmål om kode lesbarhet , tap av effektivitet og uforutsigbare resultater . En liten undergruppe av situasjoner eksisterer der dynamiske funksjoner som er aktuelle - det vil si når implementere flere funksjoner med lignende logikk som kan være lett abstrahert og serialized . Feil implementering resulterer ofte i rotete kode , som ser mer komplisert enn hvis programmereren hadde brukt statiske funksjoner. Utviklere må vurdere anvendbarhet , potensielle minne gevinster eller tap og kode kompleksitet før implementere dynamiske funksjoner .