Questions marquées «python-decorators»


17
Comment faire une chaîne de décorateurs fonctionnels?
Comment puis-je créer deux décorateurs en Python qui feraient ce qui suit? @makebold @makeitalic def say(): return "Hello" ... qui devrait retourner: "<b><i>Hello</i></b>" Je n'essaye pas de faire de HTMLcette façon dans une vraie application - j'essaie juste de comprendre comment les décorateurs et le chaînage des décorateurs fonctionnent.




5
Décorateur de méthode de classe avec auto-arguments?
Comment passer un champ de classe à un décorateur sur une méthode de classe en tant qu'argument? Ce que je veux faire, c'est quelque chose comme: class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() Il se plaint que le moi n'existe pas pour passer self.urlau …


1
Ordre d'exécution du décorateur
def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() Production: "<b><i>hello world</i></b>" Je comprends à peu près les décorateurs et comment cela fonctionne avec l'un d'entre eux dans la …

5
Comment passer des arguments supplémentaires à un décorateur Python?
J'ai un décorateur comme ci-dessous. def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' Je souhaite valoriser ce décorateur pour accepter un autre argument comme ci-dessous def myDecorator(test_func,logIt): if logIt: print "Calling Function: " + test_func.__name__ return callSomeWrapper(test_func) @myDecorator(False) def someFunc(): print 'Hello' Mais ce code …

5
Comment contourner la définition de la fonction python avec le décorateur?
Je voudrais savoir s'il est possible de contrôler la définition de la fonction Python en fonction des paramètres globaux (par exemple OS). Exemple: @linux def my_callback(*args, **kwargs): print("Doing something @ Linux") return @windows def my_callback(*args, **kwargs): print("Doing something @ Windows") return Ensuite, si quelqu'un utilise Linux, la première définition de …
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.