ComeçarComece gratuitamente

Os fechamentos mantêm seus valores seguros

Você ainda está ajudando sua sobrinha a entender os fechamentos. Você escreveu a função get_new_func() que retorna uma função aninhada. A função aninhada call_func() chama qualquer função que tenha sido passada para get_new_func(). Você também escreveu my_special_function(), que simplesmente imprime uma mensagem informando que você está executando my_special_function().

Você quer mostrar à sua sobrinha que não importa o que você faça em my_special_function() depois de passá-lo para get_new_func(), a nova função ainda imita o comportamento da my_special_function() original porque ela está no fechamento da nova função.

Este exercício faz parte do curso

Como escrever funções em Python

Ver Curso

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

def my_special_function():
  print('You are running my_special_function()')
  
def get_new_func(func):
  def call_func():
    func()
  return call_func

new_func = get_new_func(my_special_function)

# Redefine my_special_function() to just print "hello"
def my_special_function():
  ____

new_func()
Editar e executar código