Python är ett tolkat programmeringsspråk , vilket ger design time optimering via användning av dynamiska funktioner . Dynamiska funktioner tillåter delar av koden för att generera uppgifter och därefter ringa dem under run-time . När genomförs korrekt , dynamiska funktioner förbättrar kodens läsbarhet , förkorta körbar längd och kan även resultera i tid och minne förbättringar under programkörning . Historia
Python och andra programmeringsspråk genomföra traditionellt statiska kod . I denna metod för programmering , skriver en programmerare kod som drivs av användare , men koden inte och inte kan ändra sig för att anpassa sig till användarens input eller förändrade händelser systemet . En ny typ av kodning kapacitet , kallas dynamiska metoder eller självmodifierande kod tillåter själva programmet att faktiskt förändra sin egen logik . Dynamiska funktioner i Python är ett exempel på icke - ihållande modifiering , dvs utvecklar en programmerare en uppsättning ram som kvarstår statiskt i källkoden , och senare , kräver att den dynamiska funktionen ramverket endast tillfälligt ändra körningen av koden
Genomförande
Python implementerar dynamiska funktioner med hjälp av nyckelordet " lambda " följt av funktionen logiken att ange ramar och den "karta " nyckelordet för att skapa den dynamiska funktionen senare i kod. Kombinationen av dessa sökord resulterar i run -time kontroll över vilka funktioner som körs och sammanställs i minnet . På back-end , allokerar " lambda " nyckelordet en ram i minnet . När en " karta " nyckelordet körs , fyller koden i ramen med de givna värdena , och tilldelar en anonym funktion i minnet med given input .
Optimization
dynamiska funktioner i Python erbjuder enorma minne förbättringar jämfört med statiska funktioner . Funktion definitioner ( minus den statiska ram för funktionen ) kan lagras i en fil eller variabel , eller ens sändas över nätverket i stället för koden , öka flexibiliteten . När en dynamisk funktion inte längre behövs av programmet , kan programmeraren unallocate minnet som används av funktionen , vilket frigör värdefulla systemresurser som annars skulle ha hamstrade av programmet .
Komplikationer
Kritiker av dynamiska metoder och självmodifierande kod höjer ofta oro kodens läsbarhet , förlust av effektivitet och oförutsägbara resultat . En liten delmängd av situationer där dynamiska funktioner är lämpliga - dvs när de genomför flera funktioner med liknande logik som kan vara lätt abstraherade och följetong . Felaktigt genomförande resulterar ofta i rörig kod , som ser mer komplex än om programmeraren hade använt statiska funktioner . Utvecklare måste överväga tillämplighet , potentiella minne vinster eller förluster och kod komplexitet innan du implementerar dynamiska funktioner .