Menu
Coddy logo textTech

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.

challenge icon

Desafio

Fácil

Escreva 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_greeting para 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