Created
November 10, 2011 19:54
-
-
Save tiagodavi/1355973 to your computer and use it in GitHub Desktop.
Decorators In Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Recebe a função soma como argumento (f = soma) | |
def meu_decorator(f): | |
#Escreve uma nova função | |
#nova_soma recebe os mesmos argumentos da soma (não precisa ser *args) | |
#Imagine que é uma nova versão da sua soma | |
def nova_soma(x,y): | |
#Executa algo antes | |
print 'iniciando nova soma' | |
f(x,y) #Chama a própria função soma (a soma externa) | |
#Executa algo depois | |
print 'finalizando nova soma' | |
#Retorna a nova versão da soma | |
return nova_soma | |
#Com decorator executa uma nova versão de soma | |
#Sem decorator executa a soma normal | |
@meu_decorator | |
def soma(x,y): | |
print "continua sendo a soma externa veja :) " + str(x + y) | |
soma(2,2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment