డెకరేటర్లతో పైథాన్ ఫంక్షన్లను మెరుగుపరచడం
పైథాన్లో, డెకరేటర్లు ఫంక్షన్లు లేదా పద్ధతుల ప్రవర్తనను సవరించడానికి శక్తివంతమైన సాధనం. వారు డెవలపర్లు ఇప్పటికే ఉన్న ఫంక్షన్లో క్లీన్ మరియు రీడబుల్ పద్ధతిలో అదనపు ఫంక్షనాలిటీని చుట్టడానికి అనుమతిస్తారు. డెకరేటర్లను ఎలా సృష్టించాలి మరియు చైన్ చేయాలో అర్థం చేసుకోవడం ద్వారా, మీరు మీ కోడ్ యొక్క మాడ్యులారిటీ మరియు రీడబిలిటీని బాగా పెంచుకోవచ్చు.
ఈ కథనం రెండు నిర్దిష్ట డెకరేటర్లను తయారుచేసే ప్రక్రియ ద్వారా మీకు మార్గనిర్దేశం చేస్తుంది: ఒకటి టెక్స్ట్ను బోల్డ్గా చేయడానికి మరియు మరొకటి టెక్స్ట్ ఇటాలిక్గా చేయడానికి. కావలసిన అవుట్పుట్ను సాధించడానికి ఈ డెకరేటర్లను ఎలా చైన్ చేయాలో కూడా మేము ప్రదర్శిస్తాము. ఈ ట్యుటోరియల్ ముగిసే సమయానికి, మీరు ఒక సాధారణ ఫంక్షన్కు కాల్ చేయగలరు మరియు బోల్డ్ మరియు ఇటాలిక్ HTML ట్యాగ్లతో ఫార్మాట్ చేయబడిన స్ట్రింగ్ను స్వీకరించగలరు.
ఆదేశం | వివరణ |
---|---|
def | పైథాన్లో ఫంక్షన్ను నిర్వచిస్తుంది. |
f"<b>{func()}</b>" | ఫంక్షన్ యొక్క రిటర్న్ విలువను బోల్డ్ HTML ట్యాగ్లలో చుట్టడానికి f-స్ట్రింగ్ ఫార్మాటింగ్ని ఉపయోగిస్తుంది. |
return wrapper | డెకరేటర్ను ప్రభావవంతంగా సృష్టించడం ద్వారా లోపలి రేపర్ ఫంక్షన్ను అందిస్తుంది. |
@make_bold | ఒక ఫంక్షన్కి make_bold డెకరేటర్ని వర్తింపజేస్తుంది. |
@add_html_tag("i") | ఫంక్షన్కి "i" ట్యాగ్తో add_html_tag డెకరేటర్ని వర్తింపజేస్తుంది. |
print(say()) | అలంకరించబడిన అవుట్పుట్ను ప్రదర్శిస్తూ సే ఫంక్షన్ ఫలితాన్ని ప్రింట్ చేస్తుంది. |
def add_html_tag(tag) | అనుకూలీకరించదగిన HTML ట్యాగ్ డెకరేటర్ను సృష్టించడానికి అధిక-ఆర్డర్ ఫంక్షన్ను నిర్వచిస్తుంది. |
@add_html_tag("b") | ఒక ఫంక్షన్కి "b" ట్యాగ్తో add_html_tag డెకరేటర్ని వర్తింపజేస్తుంది. |
పైథాన్ ఫంక్షన్ డెకరేటర్లను అర్థం చేసుకోవడం
అందించిన స్క్రిప్ట్లు ఫంక్షన్ల ప్రవర్తనను సవరించడానికి పైథాన్లో ఫంక్షన్ డెకరేటర్లను ఎలా సృష్టించాలి మరియు చైన్ చేయాలి. పైథాన్లోని డెకరేటర్ని ఉపయోగించి నిర్వచించబడింది def మరొక ఫంక్షన్ను ఆర్గ్యుమెంట్గా తీసుకుని, కొత్త ఫంక్షన్ని అందించే ఫంక్షన్ని సృష్టించడానికి కీవర్డ్. ది make_bold డెకరేటర్ f-స్ట్రింగ్ ఫార్మాటింగ్ని ఉపయోగించి HTML బోల్డ్ ట్యాగ్లతో అలంకరిస్తున్న ఫంక్షన్ ఫలితాన్ని మూటగట్టుకుంటుంది: f"<b>{func()}</b>". అదేవిధంగా, ది make_italic డెకరేటర్ ఫలితాన్ని ఇటాలిక్ ట్యాగ్లలో చుట్టేస్తుంది: f"<i>{func()}</i>". ఈ డెకరేటర్లను ఉపయోగించి ఫంక్షన్కి వర్తింపజేసినప్పుడు @decorator_name సింటాక్స్, అవి సంబంధిత HTML ట్యాగ్లను జోడించడం ద్వారా ఫంక్షన్ యొక్క అవుట్పుట్ను మారుస్తాయి.
రెండవ స్క్రిప్ట్ అధిక-ఆర్డర్ ఫంక్షన్ను సృష్టించడం ద్వారా మరింత బహుముఖ విధానాన్ని పరిచయం చేస్తుంది, add_html_tag, అది ఏదైనా పేర్కొన్న HTML ట్యాగ్ కోసం డెకరేటర్లను ఉత్పత్తి చేస్తుంది. ఈ ఫంక్షన్ HTML ట్యాగ్ని ఆర్గ్యుమెంట్గా తీసుకుంటుంది మరియు పేర్కొన్న ట్యాగ్లో ఫంక్షన్ అవుట్పుట్ను చుట్టే డెకరేటర్ను అందిస్తుంది: f"<{tag}>{func()}</{tag}>". ఉపయోగించడం ద్వార @add_html_tag("b") మరియు @add_html_tag("i"), యొక్క అవుట్పుట్ను చుట్టడానికి మేము ఈ డెకరేటర్లను చైన్ చేయవచ్చు say_hello బోల్డ్ మరియు ఇటాలిక్ ట్యాగ్లు రెండింటిలోనూ పని చేస్తాయి, ఫలితంగా కావలసిన "హలో". ఈ ఉదాహరణలు క్లీన్ మరియు పునర్వినియోగ పద్ధతిలో ఫంక్షన్ ప్రవర్తనను మెరుగుపరచడంలో మరియు అనుకూలీకరించడంలో పైథాన్ డెకరేటర్ల శక్తి మరియు సౌలభ్యాన్ని వివరిస్తాయి.
పైథాన్లో డెకరేటర్లను అమలు చేయడం మరియు చైనింగ్ చేయడం
డెకరేటర్లను సృష్టించడం మరియు చైనింగ్ చేయడం కోసం పైథాన్ స్క్రిప్ట్
def make_bold(func):
def wrapper():
return f"<b>{func()}</b>"
return wrapper
def make_italic(func):
def wrapper():
return f"<i>{func()}</i>"
return wrapper
@make_bold
@make_italic
def say():
return "Hello"
print(say())
పైథాన్ డెకరేటర్లను ఉపయోగించి HTML ట్యాగ్లను సృష్టిస్తోంది
ఫంక్షన్ సవరణ మరియు HTML ట్యాగింగ్ కోసం పైథాన్ స్క్రిప్ట్
def add_html_tag(tag):
def decorator(func):
def wrapper():
return f"<{tag}>{func()}</{tag}>"
return wrapper
return decorator
@add_html_tag("b")
@add_html_tag("i")
def say_hello():
return "Hello"
print(say_hello())
అధునాతన పైథాన్ డెకరేటర్ టెక్నిక్స్
సాధారణ ఫంక్షన్ సవరణకు మించి, పైథాన్ డెకరేటర్లు కోడ్ పునర్వినియోగం మరియు నిర్వహణ సామర్థ్యాన్ని మెరుగుపరచడానికి శక్తివంతమైన మార్గాన్ని అందిస్తాయి. ఒక అధునాతన వినియోగ సందర్భం పారామీటర్ చేయబడిన డెకరేటర్లు, ఇది డెకరేటర్లను వాదనలను అంగీకరించడానికి అనుమతిస్తుంది. ఈ సాంకేతికతతో వివరించబడింది add_html_tag మునుపటి ఉదాహరణలలో డెకరేటర్. ఇతర డెకరేటర్లను రూపొందించే డెకరేటర్ను నిర్వచించడం ద్వారా, మేము అత్యంత సౌకర్యవంతమైన మరియు పునర్వినియోగ కోడ్ నిర్మాణాలను సృష్టించగలము. పారామీటరైజ్డ్ డెకరేటర్లు డెకరేటర్కు పారామితులను పాస్ చేయడానికి మాకు వీలు కల్పిస్తాయి, పనితీరు ప్రవర్తనకు డైనమిక్ మరియు సందర్భ-నిర్దిష్ట మార్పులను అనుమతిస్తుంది.
డెకరేటర్ల యొక్క మరొక ముఖ్యమైన అంశం ఫంక్షన్ మెటాడేటాను నిర్వహించగల వారి సామర్థ్యం. డెకరేటర్ ద్వారా ఫంక్షన్ చుట్టబడినప్పుడు, దాని పేరు మరియు డాక్స్ట్రింగ్ వంటి దాని మెటాడేటా కోల్పోవచ్చు. ఈ మెటాడేటాను భద్రపరచడానికి, పైథాన్స్ functools.wraps డెకరేటర్ లోపల ఉపయోగించబడుతుంది. దరఖాస్తు చేయడం ద్వారా @functools.wraps రేపర్ ఫంక్షన్కి, ఒరిజినల్ ఫంక్షన్ యొక్క మెటాడేటా కాపీ చేయబడుతుంది, డాక్యుమెంటేషన్ జనరేటర్ల వంటి ఈ మెటాడేటాపై ఆధారపడే సాధనాలు సరిగ్గా పని చేస్తూనే ఉన్నాయని నిర్ధారిస్తుంది. అదనంగా, తో చూపిన విధంగా డెకరేటర్లను పేర్చవచ్చు @make_bold మరియు @make_italic ఉదాహరణలు, క్లీన్ మరియు రీడబుల్ పద్ధతిలో ప్రవర్తన సవరణ యొక్క బహుళ లేయర్లను వర్తింపజేయడానికి.
పైథాన్ డెకరేటర్స్ గురించి సాధారణ ప్రశ్నలు
- పైథాన్లో డెకరేటర్ అంటే ఏమిటి?
- డెకరేటర్ అనేది మరొక ఫంక్షన్ యొక్క ప్రవర్తనను సవరించే ఒక ఫంక్షన్, సాధారణంగా పునర్వినియోగ పద్ధతిలో కార్యాచరణను జోడించడానికి ఉపయోగిస్తారు.
- మీరు ఫంక్షన్కి డెకరేటర్ని ఎలా వర్తింపజేయాలి?
- మీరు ఉపయోగించి డెకరేటర్ని వర్తింపజేయండి @decorator_name సింటాక్స్ నేరుగా ఫంక్షన్ డెఫినిషన్ పైన ఉంటుంది.
- మీరు ఒకే ఫంక్షన్కి బహుళ డెకరేటర్లను వర్తింపజేయగలరా?
- అవును, బహుళ డెకరేటర్లు ఒక ఫంక్షన్ పైన పేర్చబడి ఉంటాయి, ప్రతి ఒక్కటి అవి జాబితా చేయబడిన క్రమంలో వర్తింపజేయబడతాయి.
- పారామీటర్ డెకరేటర్ అంటే ఏమిటి?
- పారామీటరైజ్డ్ డెకరేటర్ అనేది డెకరేటర్, ఇది మరింత డైనమిక్ మరియు ఫ్లెక్సిబుల్ సవరణలను అనుమతిస్తుంది.
- డెకరేటర్లను ఉపయోగిస్తున్నప్పుడు మీరు ఫంక్షన్ యొక్క మెటాడేటాను ఎలా నిర్వహిస్తారు?
- మీరు వాడుతారు @functools.wraps డెకరేటర్లో ఒరిజినల్ ఫంక్షన్ యొక్క మెటాడేటాను రేపర్ ఫంక్షన్కి కాపీ చేయడానికి.
- డెకరేటర్లు ఎందుకు ఉపయోగపడతాయి?
- డెకరేటర్లు కోడ్ పునర్వినియోగం, రీడబిలిటీ మరియు ఫంక్షనాలిటీని ఎన్క్యాప్సులేట్ చేయడం ద్వారా ఆందోళనలను వేరు చేయడానికి ఉపయోగపడతాయి.
- యొక్క ప్రయోజనం ఏమిటి return wrapper డెకరేటర్లో ప్రకటన?
- ది return wrapper ప్రకటన అంతర్గత పనితీరును అందిస్తుంది, డెకరేటర్ యొక్క మార్పులను సమర్థవంతంగా వర్తింపజేస్తుంది.
- క్లాస్ మెథడ్స్లో డెకరేటర్లను ఉపయోగించవచ్చా?
- అవును, డెకరేటర్లు వారి ప్రవర్తనను సవరించడానికి క్లాస్ మరియు ఇన్స్టాన్స్ మెథడ్స్ రెండింటిలోనూ ఉపయోగించవచ్చు.
- మీరు పైథాన్లో డెకరేటర్లను ఎలా చైన్ చేస్తారు?
- డెకరేటర్లను చైన్ చేయడానికి, బహుళ పేర్చండి @decorator_name ఫంక్షన్ నిర్వచనం పైన స్టేట్మెంట్లు.
- డెకరేటర్లలో ఎఫ్-స్ట్రింగ్ల ఉపయోగం ఏమిటి?
- F-స్ట్రింగ్లు డెకరేటర్లలో స్ట్రింగ్లను ఫార్మాటింగ్ చేయడానికి ఉపయోగించబడతాయి, HTML ట్యాగ్ల వంటి నిర్దిష్ట ఫార్మాట్లలో ఫంక్షన్ అవుట్పుట్లను డైనమిక్ ఇన్సర్ట్ చేయడానికి అనుమతిస్తుంది.
పైథాన్లో ఫంక్షన్ డెకరేటర్లను సంగ్రహించడం
పైథాన్లోని ఫంక్షన్ డెకరేటర్లు ఫంక్షన్ ప్రవర్తనను సవరించడానికి మరియు మెరుగుపరచడానికి బలమైన పద్ధతిని అందిస్తాయి. డెకరేటర్లను ఎలా సృష్టించాలి, వర్తింపజేయాలి మరియు చైన్ డెకరేటర్లను ఎలా సృష్టించాలో అర్థం చేసుకోవడం ద్వారా, మీరు మీ కోడ్ మాడ్యులారిటీ మరియు రీడబిలిటీని గణనీయంగా మెరుగుపరచవచ్చు. ఈ గైడ్ సాధారణ మరియు పారామీటర్ డెకరేటర్లు, ఫంక్షన్ మెటాడేటాను సంరక్షించడం వంటి ముఖ్యమైన అంశాలను కవర్ చేసింది functools.wraps, మరియు ఫంక్షన్ అవుట్పుట్లకు HTML ట్యాగ్లను జోడించడానికి డెకరేటర్ల ఆచరణాత్మక అప్లికేషన్లు. ఈ టెక్నిక్ల ప్రావీణ్యం మరింత డైనమిక్ మరియు మెయింటెనబుల్ కోడ్ని అనుమతిస్తుంది, క్లీనర్ మరియు మరింత సమర్థవంతమైన ప్రోగ్రామింగ్ పద్ధతులను సులభతరం చేస్తుంది.