8 Mayıs 2011, Pazar
parametreleri ile python dekoratörler
Değişken aktarımı 'dekoratör tarafından. insurance_mode ile ilgili bir sorun var Aşağıdaki dekoratör deyimi ile yapardım:
@execute_complete_reservation(True)
def test_booking_gta_object(self):
self.test_select_gta_object()
ama ne yazık ki, bu deyimi çalışmıyor. Belki de bu sorunu çözmek için iyi bir yoldur belki de.
def execute_complete_reservation(test_case,insurance_mode):
def inner_function(self,*args,**kwargs):
self.test_create_qsf_query()
test_case(self,*args,**kwargs)
self.test_select_room_option()
if insurance_mode:
self.test_accept_insurance_crosseling()
else:
self.test_decline_insurance_crosseling()
self.test_configure_pax_details()
self.test_configure_payer_details
return inner_function
CEVAP
8 Mayıs 2011, Pazar
def test_booking_gta_object
kastettin, değil mi? Neyse, biraz farklı argümanlar ile dekoratör ile mimar sözdizimi, bir işlevi dönmelidirbir işlevve başka bir işlevi döndürür. Gerçekten normal bir dekoratör dönmelidir. Biraz kafa karıştırıcı, değil mi? Demek istiyorum
def decorator(argument):
def real_decorator(function):
def wrapper(*args, **kwargs):
funny_stuff()
something_with_argument(argument)
function(*args, **kwargs)
more_funny_stuff()
return wrapper
return real_decorator
Bu konuda daha fazla okuyabilirsiniz Here - aynı zamanda bunu uygulamak için değil, aynı zamanda orada açıklandığını çağrılabilir nesneleri kullanarak.
Bunu Paylaş:
** (Çift yıldız) ve * (yıldız) Python ...
Nasıl Python fonksiyonu dekoratörler z...
Derslerinde Python dekoratörler...
Yüzde kodlamak için nasıl python ile u...
URL Parametreleri için Sözlük Python...