À propos de Python Decorator

Qu'est-ce que décorer

Une fonction qui prend une fonction comme entrée et en renvoie une autre. À utiliser lorsque vous souhaitez faire quelque chose avant ou après une fonction.

Exemple d'utilisation

Exemple


#Décorateur
def test(func):
    def new_func(*args, **kwargs):
        print("start")
        result = func(*args, **kwargs)
        print("end")
        return result
    return new_func

#Cible décorateur
#Décoré en annotant
@test
def greeting():
    print("Hello")


greeting()

résultat


start
Hello
end

Exemple


#À propos des décorateurs
#dump est appelé et func=Courir en double
def dump(func):
    "Afficher les arguments d'entrée et les valeurs de sortie"
    def wrapped(*args, **kwards):
        print("Fuction name: %s" % func.__name__)
        print("Input arguments: %s " % ' '.join(map(str, args)))
        print("Input keyaeorods: %s " % kwards.items())
        output = func(*args, **kwards)
        print("Output:", output)
    return wrapped

@dump
def double(*args, **kwards):
    "Double every arguments"
    output_list = [2 * args for arg in args]
    output_dict = {k: 2 * v for k, v in kwards.items()}
    return output_list, output_dict

résultat


Fuction name: double
Input arguments: 3 5
Input keyaeorods: dict_items([('first', 100), ('next', 98.6), ('last', 40)])
Output: ([(3, 5, 3, 5), (3, 5, 3, 5)], {'first': 200, 'next': 197.2, 'last': 80})

Les références

"Introduction à Python 3" (Auteur: Bill Lubanovic)

Recommended Posts

À propos de Python Decorator
À propos des décorateurs Python
À propos des tranches Python
À propos de la notation d'inclusion de python
À propos de Python tqdm.
À propos de python, classe
À propos de l'héritage Python
À propos de python, range ()
À propos de la référence Python
[Python] À propos du multi-processus
À propos de Python for loop
À propos des arguments de fonction (python)
À propos de Python, pour ~ (plage)
[Python] Mémo sur les erreurs
À propos de l'environnement de développement Python
Python: à propos des arguments de fonction
Python, à propos de la gestion des exceptions
À propos de Python Pyramid Traversal
À propos de Python3 ... (objet Ellipsis)
[Python] Chapitre 01-01 À propos de Python (First Python)
[Python] À propos de l'entrée standard
À propos de __all__ en python
[Python] En savoir plus sur pip
Prise en charge de Fabric pour Python 3
Python
À propos des objets et des classes Python
À propos des variables et des objets Python
À propos du module Python venv
fonction de mémorandum python pour débutant
À propos de la fonction enumerate (python)
À propos de divers encodages de Python 3
À propos de Python, len () et randint ()
À propos de Perl, Python, PHP, Ruby
Un mémorandum sur le simulacre de Python
À propos des opérateurs de comparaison de chaînes Python
À propos de Python et des expressions régulières
À propos des fonctionnalités de Python
À propos de "for _ in range ():" de python
À propos des opérations Python et OS
Python # À propos de la référence et de la copie
À propos de Python sort () et reverse ()
Une note sur [python] __debug__
Initialisation de variables globales à l'aide de décorateurs Python
Une bonne description des décorateurs Python
[Python] Écrivons brièvement la notation d'inclusion
À propos de Python dict et des fonctions triées
À propos de Python et Cython dtype
[Python] Qu'est-ce que @? (À propos des décorateurs)
Ce qui était surprenant dans les classes Python
À propos de Python Pickle (cPickle) et Marshal
[Python] Que sont @classmethod et les décorateurs?
[Python] À propos des classes Executor et Future
À propos de Python, à partir et à l'importation, comme
J'ai essayé d'étudier le processus avec Python
À propos de la liste de base des bases de Python
Une note sur mock (bibliothèque fictive Python)
python kafka