Python is een geïnterpreteerde programmeertaal , die ontwerp -time optimalisatie biedt via het gebruik van dynamische functies . Dynamische functies mogelijk delen van de code om functies te genereren en dan vervolgens te bellen tijdens run -time . Wanneer goed uitgevoerd, dynamische functies te verbeteren code leesbaarheid , verkorten uitvoerbare lengte en kan zelfs resulteren in de tijd en het geheugen verbeteren terwijl het programma loopt . Geschiedenis Python en andere programmeertalen voeren traditioneel statische code . Bij deze manier van programmeren , een programmeur schrijft code die wordt uitgevoerd door de gebruikers , maar de code niet en kan zich niet aanpassen aan te passen aan input van de gebruiker of het wijzigen van het systeem gebeurtenissen . Een nieuw type codering vermogen , genaamd dynamische methoden of zelf -modifying code kunt het programma zelf om daadwerkelijk te veranderen zijn eigen logica . Dynamische functies in Python zijn een voorbeeld van niet-persistente modificatie , dat is , een programmeur ontwikkelt een set kader dat statisch blijft in de broncode , en later , doet denken aan de dynamische functie kader van de uitvoering van de code slechts tijdelijk te veranderen < br . > Implementatie Python implementeert dynamische functies met het trefwoord " lambda " gevolgd door de functie logica om het kader en de " kaart " keyword om de dynamische functie later in het creëren definiëren code . De combinatie van deze zoekwoorden resultaten in run -time controle over welke functies worden uitgevoerd en opgesteld in het geheugen . Op de back - end , de " lambda " keyword kent een kader in het geheugen . Als een " kaart " keyword loopt , de code vult in het kader van de gegeven waarden , en wijst een anonieme functie in het geheugen met de gegeven inbreng . Optimalisatie Dynamische functies in Python bieden enorme geheugen verbeteringen ten opzichte van statische functies . Functiedefinities ( minus de statische middelen voor de functie) kan worden opgeslagen in een bestand of variabele of zelfs via het netwerk in plaats van de code worden overgedragen , vergroten flexibiliteit. Wanneer een dynamische functie niet meer nodig is door het programma , kan de programmeur van het geheugen wordt gebruikt door de functie unallocate , het vrijmaken van waardevolle systeembronnen die anders zouden zijn kan voeden door het programma . Complicaties < br > Critici van dynamische methoden en zelf -modifying code heffen vaak zorgen over de leesbaarheid van code , rendementsverlies en onvoorspelbare resultaten . Een klein deel van de situaties bestaan waarin dynamische functies geschikt zijn - dat wil zeggen bij de uitvoering van meerdere functies met gelijkaardige logica die gemakkelijk kan worden geabstraheerd en series . Onjuiste implementatie resulteert vaak in rommelige code , die ziet er ingewikkelder dan wanneer de programmeur statische functies had gebruikt . Ontwikkelaars moeten toepasbaarheid , potentiële geheugen winsten of verliezen , en de complexiteit van de code te overwegen voordat de uitvoering van dynamische functies .
|