Décorateur 1

1


def print_info(func):
    def wrapper(*args, **kwargs):
        print('start')
        result = func(*args, **kwargs)
        print('end')
        return result
    return wrapper

def sum(a, b):
    return a + b

f = print_info(sum)
r = f(10, 20)
print(r)

Résultat d'exécution de 1


start
end
30

La fonction print_info est un décorateur Décorer la fonction somme.

Il est difficile de comprendre si c'est écrit comme 1. Il est plus facile à comprendre si vous écrivez comme suit. .. ..

En outre, le décorateur peut être réutilisé, donc basé sur cela. .. ..

2


def print_info(func):
    def wrapper(*args, **kwargs):
        print('start')
        result = func(*args, **kwargs)
        print('end')
        return result
    return wrapper

@print_info
def sum(a, b):
    return a + b

@print_info
def sub(a, b):
    return a - b

print(sum(10, 20))
print(sub(90, 20))

Résultat d'exécution de 2


start
end
30
start
end
70

Recommended Posts

Décorateur 1
Décorateur 2
Décorateur
Décorateur
Décorateur MyHDL
Remarque: décorateur Python
Modèle de conception #Decorator
Décorateur de fonction Python
Écrire un décorateur en classe
Faire un décorateur de fonction
Résumez le décorateur @property de Python
Modèle de décorateur en Java
notes d'utilisation du décorateur python
Utilisez Property Decorator?
Mémo d'opération de décorateur Python
J'ai essayé Python> décorateur
Décorer avec un décorateur