Nested Functions
Lição 2 de 12 do curso Decoradores em Python da Coddy.
Antes de mergulharmos em decoradores, precisamos entender alguns conceitos importantes relacionados às funções Python.
Em Python, podemos incluir uma função dentro de outra, também conhecida como uma função aninhada (nested function).
Por exemplo,
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
Neste exemplo, outer_function contém uma função aninhada chamada inner_function.
Quando outer_function é chamada, ela primeiro imprimirá "This is the outer function." e depois chamará inner_function. inner_function então imprimirá "This is the inner function."
Observe que inner_function só pode ser chamada de dentro da outer_function.
Se você tentar chamar inner_function fora da outer_function, você receberá um NameError dizendo que inner_function não está definida.
Desafio
FácilEscreva uma função chamada greeting_generator que recebe um nome como argumento e retorna uma mensagem de saudação que inclui o nome.
A mensagem de saudação deve ser gerada por uma função aninhada chamada get_greeting, que recebe o nome como argumento e retorna uma string que diz "Hello, [name]!".
Aqui está um exemplo de como a função deve funcionar:
>>> greeting = greeting_generator("Alice")
>>> greeting
"Hello, Alice!"
>>> greeting = greeting_generator("Bob")
>>> greeting
"Hello, Bob!"
Restrições
- Você deve usar uma função aninhada chamada
get_greetingpara gerar a mensagem de saudação. - A mensagem de saudação deve incluir o nome passado para
greeting_generator.
Experimente você mesmo
Todas as lições de Decoradores em Python
Pratique por conta própria: Compilador de Python online