Neste artigo veremos o porque declarar uma função dentro de outra função e também o que isso impacta no código, será que podemos nos beneficiar desta técnica?
Fala programador(a), beleza? Bora aprender mais sobre Python e funções!
Esta técnica, de declarar funções dentro de funções, é conhecida também como encapsulamento
Suponha que você tem uma repetição dentro de uma função do mesmo código, então a melhor alternativa é encapsular este código em uma função
E caso esta porção de código não seja utilizada fora desta função principal, não faz sentido colocar esta função interna no escopo global, por exemplo
Isso é melhor por que não bagunçamos o escopo global, adicionando mais código para os programadores verificarem e testarem
Ao invés disso nós inserimos esta nova função só no contexto que será utilizada
E isso não é uma prática só no Python, e sim em todas as outras linguagens de programação
Vamos ver um exemplo:
def recebeNumero(num): resultado = 0 def trataNumero(num): if(num < 0): return num + 5 else: return num - 5 for x in range(5): resultado += trataNumero(num) print(resultado) recebeNumero(10)
Aqui temos um for dentro da função recebeNumero, que invoca diversas vezes a função trataNumero
Então utilizando este encapsulamento poderíamos chamar ela em outra condição também, partindo do pre suposto que ela não será utilizada fora deste contexto
As condicionais poderiam ficar dentro do for, mas daí perderíamos o poder de reutilização e o código ficaria um pouco mais complexo de ler
Conclusão
Neste artigo vimos por que declarar uma função dentro de outra função
É uma questão de organização de código somada a possível reutilização, deixando o código com mais manutenibilidade
Além de que isso não é uma prática exclusiva de Python, e sim de todas as linguagens de programação
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube