diff --git a/aula104.py b/aula104.py new file mode 100644 index 0000000..075784c --- /dev/null +++ b/aula104.py @@ -0,0 +1,32 @@ +# 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. +# Decoradores são "Syntax Sugar" (Açúcar sintático) + +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 + + +@criar_funcao +def inverte_string(string): + print(f'{inverte_string.__name__}') + return string[::-1] + + +def e_string(param): + if not isinstance(param, str): + raise TypeError('param deve ser uma string') + + +invertida = inverte_string('123') +print(invertida)