Pytania oznaczone «python-decorators»

W Pythonie dekoratory to funkcje, które w wygodny sposób zmieniają funkcje, metody lub klasy przy użyciu specjalnej składni. Dekoratory dynamicznie zmieniają funkcjonalność bez zmiany dekorowanego kodu źródłowego.

154
Dekorator metody klasowej z argumentami własnymi?

Jak przekazać pole klasy do dekoratora w metodzie klasy jako argument? To, co chcę zrobić, to coś takiego: class Client(object): def __init__(self, url): self.url = url @check_authorization("some_attr", self.url) def get(self): do_work() Narzeka, że ​​jaźń nie istnieje do przekazania...

96
Zlecenie wykonania dekoratora

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() Wynik: "<b><i>hello world</i></b>" Z grubsza...