Decoradores de função em Python | Conjunto 1 (introdução)
A seguir estão fatos importantes sobre funções em Python que são úteis para entender as funções do decorador.
- Em Python, podemos definir uma função dentro de outra função.
- Em Python, uma função pode ser passada como parâmetro para outra função (uma função também pode retornar outra função).
def
messageWithWelcome(
str
):
def
addWelcome():
return
"Welcome to "
return
addWelcome()
+
str
def
site(site_name):
return
site_name
messageWithWelcome(site(
"GeeksforGeeks"
))
Resultado:
Bem-vindo ao GeeksforGeeks
Um decorador é uma função que recebe uma função como seu único parâmetro e retorna uma função. Isso é útil para “embrulhar” a funcionalidade com o mesmo código repetidamente. Por exemplo, o código acima pode ser reescrito da seguinte forma.
Usamos @func_name para especificar um decorador a ser aplicado em outra função.
def
decorate_message(fun):
def
addWelcome(site_name):
return
"Welcome to "
+
fun(site_name)
return
addWelcome
@decorate_message
def
site(site_name):
return
site_name;
site(
"GeeksforGeeks"
)
Resultado:
Bem-vindo ao GeeksforGeeks
Decoradores também podem ser úteis para anexar dados (ou adicionar atributos) às funções.
def
attach_data(func):
func.data
=
3
return
func
@attach_data
def
add (x, y):
return
x
+
y
(add(
2
,
3
))
(add.data)
Resultado:
5 3
'add()' retorna a soma de xey passada como argumentos, mas é envolvida por uma função decoradora, chamar add (2, 3) simplesmente forneceria a soma de dois números, mas quando chamamos add.data, a função 'add' é passado para a função de decorador 'attach_data' como argumento e esta função retorna a função 'adicionar' com um atributo 'dados' que é definido como 3 e, portanto, imprime-o.
Os decoradores Python são uma ferramenta poderosa para remover redundâncias.
Consulte Decoradores em Python para mais detalhes.
Este artigo é uma contribuição de Shwetanshu Rohatgi . Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva