Դեկորատորը Python-ում ֆունկցիա է, որը ընդունում է մեկ այլ ֆունկցիա որպես իր արգումենտ և վերադարձնում է ևս մեկ ֆունկցիա: Դեկորատորները կարող են չափազանց օգտակար լինել, քանի որ թույլ են տալիս ընդլայնել գոյություն ունեցող ֆունկցիան՝ առանց բնօրինակ ֆունկցիայի սկզբնական կոդի փոփոխության:
Ե՞րբ պետք է օգտագործել դեկորատոր։
Դեկորատորներն օգտագործվում են ցանկացած բանի համար, որը ցանկանում եք թափանցիկ «փաթաթել» լրացուցիչ ֆունկցիոնալությամբ: Django-ն դրանք օգտագործում է դիտման գործառույթների վրա «պահանջվող մուտքի» գործառույթը փաթեթավորելու, ինչպես նաև ֆիլտրի գործառույթները գրանցելու համար: Դուք կարող եք օգտագործել դասի դեկորատորներ՝ դասերին անվանական տեղեկամատյաններ ավելացնելու համար:
Որտե՞ղ կարող ենք օգտագործել դեկորատորներ Python-ում:
Decorators-ը շատ հզոր և օգտակար գործիք է Python-ում, քանի որ այն թույլ է տալիս ծրագրավորողներին փոփոխել ֆունկցիայի կամ դասի պահվածքը: Դեկորատորները թույլ են տալիս մեզ փաթաթել մեկ այլ գործառույթ՝ փաթաթված ֆունկցիայի վարքագիծը երկարացնելու համար՝ առանց այն մշտապես փոփոխելու:
Ինչու՞ պետք է ավելի հաճախ օգտագործենք Python դեկորատոր:
Python Decorator-ը հզոր գործիք է, որը կարող է օգնել մեզ շահարկելֆունկցիայի ֆունկցիոնալությունը, փորձարկման մեթոդ՝ պարզապես ավելացնելով @decorator_name: … Python-ի ֆունկցիաները կարող են նաև այլ գործառույթ ընդունել որպես մուտքագրում, այնուհետև վերադարձնել այլ ֆունկցիա: Այս տեխնիկան կոչվում է ավելի բարձր կարգի ֆունկցիա:
Որո՞նք են դեկորատորների առավելությունները
Decorator Design Pattern-ի առավելությունները
- Այնճկուն է, քան ժառանգականությունը, քանի որ ժառանգությունն ավելացնում է պատասխանատվությունը կոմպիլյացիայի ժամանակ, իսկ դեկորատորի օրինակն ավելացնում է գործարկման ժամանակ:
- Մենք կարող ենք ունենալ ցանկացած թվով դեկորատորներ և նաև ցանկացած կարգով։
- Այն ընդլայնում է օբյեկտի ֆունկցիոնալությունը՝ չազդելով որևէ այլ օբյեկտի վրա: