diff --git a/aula103.py b/aula103.py new file mode 100644 index 0000000..4126f19 --- /dev/null +++ b/aula103.py @@ -0,0 +1,30 @@ +# Funções decoradoras e decoradores +# Decorar = Adicionar / Remover/ Restringir / Alterar +# Funções decoradoras são funções que decoram outras funções +# Decoradores são usados para fazer o Python +# usar as funções decoradoras em outras funções. + +def criar_funcao(func): + def interna(*args, **kwargs): + print('Vou te decorar') + for arg in args: + e_string(arg) + resultado = func(*args, **kwargs) + print(f'O seu resultado foi {resultado}.') + print('Ok, agora você foi decorada') + return resultado + return interna + + +def inverte_string(string): + return string[::-1] + + +def e_string(param): + if not isinstance(param, str): + raise TypeError('param deve ser uma string') + + +inverte_string_checando_parametro = criar_funcao(inverte_string) +invertida = inverte_string_checando_parametro('123') +print(invertida)