From 12a3f75aa030bce2d4fb0002457ff7ee4f65d816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Sun, 6 Nov 2022 08:08:37 -0300 Subject: [PATCH] =?UTF-8?q?Fun=C3=A7=C3=B5es=20decoradoras=20em=20geral?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula103.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 aula103.py 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)