Python é uma linguagem de programação interpretada , o que proporciona a otimização de tempo de design através do uso de funções dinâmicas . Funções dinâmicas permitem partes do código para gerar funções e , em seguida, chamá-los , posteriormente, durante o tempo de execução. Quando implementado corretamente, funções dinâmicas melhorar a legibilidade do código , encurtar comprimento executável e pode até resultar em tempo e melhorias de memória durante a execução do programa. História
Python e outras linguagens de programação , tradicionalmente implementar código estático . Neste método de programação , um programador escreve o código que é executado pelos usuários, mas o código não faz e não pode modificar -se a adaptar-se a entrada do usuário ou alterar os eventos do sistema . Um novo tipo de capacidade de codificação , denominada métodos dinâmicos ou código de auto - modificação permite que o próprio programa para efectivamente alterar a sua própria lógica . Funções dinâmicas em Python são um exemplo de modificação não- persistente , ou seja, um programador desenvolve um quadro conjunto que persiste estaticamente no código fonte e, mais tarde , as chamadas para o quadro função dinâmica só alterar temporariamente a execução do código < br. >
Implementação
Python implementa funções dinâmicas utilizando a palavra-chave " lambda ", seguido pela lógica função para definir o quadro ea palavra-chave "mapa" para criar a função dinâmica no final do código . A combinação destes resultados de palavras-chave no controle de tempo de execução sobre quais as funções são executados e compilado na memória. No back-end, a palavra-chave " lambda " aloca uma estrutura na memória. Quando uma palavra-chave "mapa" é executado, o código preenche o quadro com os valores , e atribui uma função anônima na memória com a entrada dada .
Otimização
funções dinâmicas em Python oferecer melhorias de memória tremendos mais funções estáticas . Definições de funções (menos a estrutura estática para a função ) podem ser armazenados num ficheiro ou variável , ou até mesmo ser transmitidos através da rede , em vez de o código , aumentar a flexibilidade . Quando uma função dinâmica não é mais necessário pelo programa , o programador pode desaloco a memória usada pela função , liberando valiosos recursos do sistema que teriam sido acumulados por programa.
Complicações < br >
críticos de métodos dinâmicos e código de auto- modificando frequentemente levantam preocupações sobre a legibilidade do código , perda de eficiência e resultados imprevisíveis. Um pequeno subconjunto de situações existem em que as funções dinâmicas são adequadas - ou seja, quando a implementação de múltiplas funções com uma lógica similar que pode ser facilmente captada e serializada . Aplicação incorrecta, muitas vezes resulta em código confuso , que parece mais complexo do que se o programador tinha usado funções estáticas . Os desenvolvedores precisam considerar a aplicabilidade , os ganhos ou perdas potenciais de memória e complexidade do código antes de implementar funções dinâmicas .