From 015991d667483650c900bfc918789e08b64ec660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Sun, 6 Nov 2022 08:31:36 -0300 Subject: [PATCH] Decoradores em Python --- aula104.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 aula104.py 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)