Pytania otagowane jako decorator

Dekorator to obiektowy wzorzec projektowy, który umożliwia dynamiczne dodawanie zachowań do istniejących klas. Jest to jeden z wzorców projektowania strukturalnego Gang of Four.

5
Co to są „dekoratorzy” i jak się ich używa?
Jestem ciekaw, czym dokładnie są dekoratorzy w AngularJS. W Internecie nie ma zbyt wielu informacji dla dekoratorów, z wyjątkiem notki w dokumentacji AngularJS i krótkiej (choć interesującej) wzmianki w wideo na YouTube . Jak to ujęli faceci z Angular, dekoratorem jest: Dekoracja usługi, pozwala dekoratorowi przechwycić tworzenie instancji usługi. Zwrócone …

8
Różnice między wzorcem proxy i dekoratorem
Czy możesz podać jakieś dobre wyjaśnienie, jaka jest różnica między proxy a dekoratorem ? Główną różnicą, którą widzę, jest to, że kiedy zakładamy, że proxy używa kompozycji, a dekorator używa agregacji , wydaje się jasne, że używając wielu (jednego lub więcej) dekoratorów można modyfikować / dodawać funkcje do wcześniej istniejącej …

11
Dekoratory Pythona w klasach
Czy można napisać coś takiego: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass To się nie udaje: jaźń w sobie jest nieznana Próbowałem też: @Test._decorator(self) co również kończy się niepowodzeniem: Test nieznany Chciałbym tymczasowo zmienić niektóre zmienne instancji w dekoratorze, a następnie uruchomić metodę dekorowania, zanim zmienię je …
140 python  class  decorator  self 

2
Różnica między wzorami projektowymi elewacji, proxy, adaptera i dekoratora? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Popraw to pytanie Jaka jest różnica między wzorcami projektowymi Fasada, Proxy, Adapter i Dekorator? Nigdy …

8
Jak udekorować klasę?
Czy w Pythonie 2.5 jest sposób na stworzenie dekoratora, który zdobi klasę? W szczególności chcę użyć dekoratora, aby dodać element członkowski do klasy i zmienić konstruktora, aby przyjmował wartość dla tego elementu. Szukam czegoś podobnego do następującego (który ma błąd składni w „klasie Foo:”: def getId(self): return self.__id class addID(original_class): …

7
dekoratory w standardzie Pythona lib (specjalnie @deprecated)
Muszę oznaczyć procedury jako przestarzałe, ale najwyraźniej nie ma standardowego dekoratora biblioteki, który mógłby zostać wycofany. Znam przepisy na to i moduł ostrzeżeń, ale moje pytanie brzmi: dlaczego nie ma standardowego dekoratora biblioteki dla tego (powszechnego) zadania? Dodatkowe pytanie: czy w ogóle istnieją standardowe dekoratory w bibliotece standardowej?
128 python  decorator 

3
Jak tworzyć abstrakcyjne właściwości w klasach abstrakcyjnych Pythona
W poniższym kodzie tworzę podstawową klasę abstrakcyjną Base. Chcę, aby wszystkie klasy, które dziedziczą, Basezapewniały namewłaściwość, więc utworzyłem tę właściwość jako @abstractmethod. Potem stworzył podklasę Baseo nazwie Base_1, które mają za zadanie dostarczyć pewną funkcjonalność, ale nadal pozostają abstrakcyjne. W programie nie ma namewłasności Base_1, ale mimo to Python instatinuje …


6
Zachowanie sygnatur dekorowanych funkcji
Załóżmy, że napisałem dekoratora, który robi coś bardzo ogólnego. Na przykład może przekonwertować wszystkie argumenty na określony typ, przeprowadzić rejestrowanie, zaimplementować zapamiętywanie itp. Oto przykład: def args_as_ints(f): def g(*args, **kwargs): args = [int(x) for x in args] kwargs = dict((k, int(v)) for k, v in kwargs.items()) return f(*args, **kwargs) return …
111 python  decorator 

8
Dekorator właściwości zapamiętywania / odroczonego wyszukiwania w Pythonie
Ostatnio przejrzałem istniejącą bazę kodu zawierającą wiele klas, w których atrybuty instancji odzwierciedlają wartości przechowywane w bazie danych. Przefaktoryzowałem wiele z tych atrybutów, aby ich wyszukiwanie w bazie danych zostało odroczone, tj. nie być inicjalizowane w konstruktorze, ale tylko przy pierwszym czytaniu. Te atrybuty nie zmieniają się przez cały okres …
109 python  decorator 

13
Czy dekorator metody instancji może uzyskać dostęp do klasy?
Mam coś mniej więcej podobnego do następującego. Zasadniczo muszę uzyskać dostęp do klasy metody instancji z dekoratora używanego w metodzie instancji w jej definicji. def decorator(view): # do something that requires view's class print view.im_class return view class ModelA(object): @decorator def a_method(self): # do some stuff pass Kod taki jaki …
109 python  decorator 

5
Dekoratory Webpack Babel 6 ES6
Mam projekt napisany w ES6 z pakietem webpack. Większość transpilingów działa dobrze, ale kiedy próbuję dodać dekoratory w dowolnym miejscu, pojawia się ten błąd: Decorators are not supported yet in 6.x pending proposal update. Przejrzałem narzędzie do śledzenia problemów Babel i nie udało mi się tam niczego znaleźć, więc zakładam, …

1
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 rozumiem o dekoratorach i jak to działa z jednym z nich w większości przykładów. W …

3
Określanie, czy główny program rejestrujący jest ustawiony na poziom DEBUG w Pythonie?
Jeśli ustawię moduł logowania na DEBUG z parametrem wiersza poleceń, takim jak ten: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) Jak mogę później sprawdzić, czy rejestrator został ustawiony na DEBUG? Piszę dekorator, który będzie mierzył czas funkcji, jeśli zostanie do niego przekazana flaga True, a jeśli nie zostanie podana żadna flaga, domyślnie …

13
Jak stworzyć dekorator w Pythonie, którego można używać z parametrami lub bez nich?
Chciałbym stworzyć dekorator Pythona, którego można używać z parametrami: @redirect_output("somewhere.log") def foo(): .... lub bez nich (na przykład, aby domyślnie przekierować wyjście na stderr): @redirect_output def foo(): .... Czy to w ogóle możliwe? Zwróć uwagę, że nie szukam innego rozwiązania problemu przekierowania wyjścia, to tylko przykład składni, którą chciałbym osiągnąć.
88 python  decorator 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.