«decorator» etiketlenmiş sorular

Dekoratör, mevcut sınıflara dinamik bir şekilde davranış eklemeye izin veren nesne yönelimli bir tasarım modelidir. Gang of Four'un yapısal tasarım modellerinden biridir.

5
“Dekoratörler” nedir ve nasıl kullanılır?
AngularJS'de dekoratörlerin tam olarak ne olduğunu merak ediyorum. Dekoratörler için AngularJS belgelerinde bir bulanıklık ve bir youtube videosunda kısa (ilginç de olsa) bir söz için tasarruf için çevrimiçi çok fazla bilgi yok . Açısal adamların dediği gibi bir dekoratör: Hizmetin dekorasyonu, dekoratörün hizmet örneği oluşturulmasını durdurmasına izin verir. Döndürülen örnek, …

11
Sınıflarda Python dekoratörleri
Kişi şöyle bir şey yazabilir mi: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass Bu başarısız: self in @self bilinmiyor Ayrıca denedim: @Test._decorator(self) bu da başarısız olur: Test bilinmiyor Geçici olarak bazı örnek değişkenleri dekoratör değiştirmek ve sonra geri değiştirmeden önce dekore yöntemi çalıştırmak istiyorum.
140 python  class  decorator  self 

8
Proxy ve Dekoratör Kalıbı arasındaki farklar
Vekil ve Dekoratör arasındaki farkın ne olduğunu iyi bir açıklama yapabilir misiniz ? Gördüğüm temel fark biz varsayıyorum zaman olacağı Vekil kullandığı kompozisyon ve Dekoratör kullandığı agregasyon da o birden (bir veya daha fazla) kullanarak o zaman net görünüyor dekoratörler oysa değiştirmek / örneği (Dekorasyonumu) önceden var işlevleri ekleyebilirsiniz vekil …

2
Cephe, Proxy, Adaptör ve Dekoratör tasarım desenleri arasındaki fark nedir? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu, yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 4 yıl önce kapalı . Bu soruyu geliştir Cephe, Proxy, Adaptör ve Dekoratör tasarım desenleri arasındaki fark nedir? Daha …

8
Bir sınıf nasıl dekore edilir?
Python 2.5'te, bir sınıfı süsleyen bir dekoratör yaratmanın bir yolu var mı? Özellikle, bir sınıfa üye eklemek ve kurucuyu o üye için bir değer alacak şekilde değiştirmek için bir dekoratör kullanmak istiyorum. Aşağıdakine benzer bir şey aranıyor ('sınıf Foo:' üzerinde sözdizimi hatası olan: def getId(self): return self.__id class addID(original_class): def …

7
python standart kitaplığındaki dekoratörler (özellikle @deprecated)
Rutinleri kullanımdan kaldırıldı olarak işaretlemem gerekiyor, ancak görünüşe göre kullanımdan kaldırılacak standart bir kitaplık dekoratörü yok. Bunun için tariflerin ve uyarılar modülünün farkındayım, ancak sorum şu: Bu (ortak) görev için neden standart bir kütüphane dekoratörü yok? Ek soru: standart kitaplıkta standart dekoratörler var mı?
128 python  decorator 

3
Python soyut sınıflarında soyut özellikler nasıl oluşturulur
Aşağıdaki kodda, bir temel soyut sınıf oluşturuyorum Base. Miras alan tüm sınıfların özelliği Basesağlamasını nameistiyorum, bu yüzden bu özelliği bir @abstractmethod. Sonra bir alt sınıf oluşturdum Base, denilen Base_1, bazı işlevler sağlaması ama yine de soyut kalması amaçlanıyor. Orada hayır namemülkiyet Base_1, ama yine de piton bir hata olmadan bu …


6
Süslü işlevlerin imzalarını korumak
Çok genel bir şey yapan bir dekoratör yazdığımı varsayalım. Örneğin, tüm argümanları belirli bir türe dönüştürebilir, günlüğe kaydetme yapabilir, notlandırma uygulayabilir, vb. İşte bir örnek: 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
Python hafızaya alma / ertelenmiş arama özelliği dekoratörü
Son zamanlarda, örnek niteliklerinin bir veritabanında depolanan değerleri yansıttığı birçok sınıf içeren mevcut bir kod tabanından geçtim. Veritabanı aramalarının ertelenmesi için bu özniteliklerin çoğunu yeniden düzenledim. yapıcıda başlatılmamalıdır, ancak yalnızca ilk okunduğunda. Bu öznitelikler, örneğin kullanım ömrü boyunca değişmez, ancak ilk kez hesaplamak için gerçek bir darboğazdır ve yalnızca özel …
109 python  decorator 

13
Bir örnek yönteminin dekoratörü sınıfa erişebilir mi?
Aşağıdakine benzer bir şeyim var. Temel olarak, bir örnek yönteminin sınıfına, tanımındaki örnek yönteminde kullanılan bir dekoratörden erişmem gerekiyor. 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 Olduğu gibi kod şunları verir: AttributeError: 'function' nesnesinin …
109 python  decorator 

5
Webpack babel 6 ES6 dekoratörler
Paketleyicim olarak webpack ile ES6'da yazılmış bir projem var. Transpiling çoğu iyi çalışıyor, ancak dekoratörleri herhangi bir yere dahil etmeye çalıştığımda şu hatayı alıyorum: Decorators are not supported yet in 6.x pending proposal update. Babel sorunu izleyicisine baktım ve orada hiçbir şey bulamadım, bu yüzden yanlış kullandığımı varsayıyorum. Web paketi …

1
Dekoratör yürütme emri
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() Çıktı: "<b><i>hello world</i></b>" Çoğu örnekte dekoratörleri ve bunlardan biriyle nasıl çalıştığını kabaca anlıyorum. Bu örnekte 2 tane var. Çıktıdan, o …

3
Python'da kök kaydedicinin DEBUG düzeyine ayarlanıp ayarlanmadığını belirleme?
Günlük modülünü aşağıdaki gibi bir komut satırı parametresiyle DEBUG olarak ayarlarsam: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) Kaydedicinin DEBUG olarak ayarlanıp ayarlanmadığını daha sonra nasıl anlarım? Ona Doğru bayrak geçirilirse bir işlevi zamanlayacak bir dekoratör yazıyorum ve herhangi bir bayrak verilmezse, kök günlükleyici DEBUG olarak ayarlandığında varsayılan olarak zamanlama bilgilerini yazdırmak …

13
Parametreli veya parametreler olmadan kullanılabilen bir Python dekoratörü nasıl oluşturulur?
Parametreler ile kullanılabilecek bir Python dekoratörü oluşturmak istiyorum: @redirect_output("somewhere.log") def foo(): .... veya bunlar olmadan (örneğin çıktıyı varsayılan olarak stderr'e yönlendirmek için): @redirect_output def foo(): .... Bu mümkün mü? Çıktıyı yeniden yönlendirme sorununa farklı bir çözüm aramadığımı unutmayın, bu sadece elde etmek istediğim sözdiziminin bir örneğidir.
90 python  decorator 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.