पायथन फंक्शन डेफिनिशनमधील *आर्ग्स आणि **क्वार्ग्स समजून घेणे

पायथन फंक्शन डेफिनिशनमधील *आर्ग्स आणि **क्वार्ग्स समजून घेणे
पायथन फंक्शन डेफिनिशनमधील *आर्ग्स आणि **क्वार्ग्स समजून घेणे

पायथनचे फंक्शन पॅरामीटर्स एक्सप्लोर करत आहे

पायथनमध्ये, लवचिक आणि डायनॅमिक फंक्शन्स लिहिण्यासाठी *args आणि **kwargs चा वापर समजून घेणे महत्त्वाचे आहे. हे विशेष वाक्यरचना घटक विकासकांना एका फंक्शनमध्ये अनेक आर्ग्युमेंट्स पास करू देतात, ज्यामुळे कोड अधिक पुन्हा वापरता येण्याजोगा आणि कार्यक्षम होतो.

या लेखात, आम्ही फंक्शन पॅरामीटर्समध्ये वापरल्यास * (एकल तारा) आणि ** (दुहेरी तारा) चिन्हांचा अर्थ काय आहे ते शोधू. तुमच्या कोडमधील विविध परिस्थिती हाताळण्यासाठी *args आणि **kwargs कसे वापरायचे याची व्यावहारिक उदाहरणे देखील आम्ही पाहू.

आज्ञा वर्णन
*args फंक्शनला पोझिशनल आर्ग्युमेंट्सची व्हेरिएबल संख्या स्वीकारण्याची अनुमती देते. युक्तिवाद एक tuple म्हणून पास केले जातात.
**kwargs फंक्शनला कीवर्ड वितर्कांची व्हेरिएबल संख्या स्वीकारण्याची अनुमती देते. युक्तिवाद शब्दकोष म्हणून पास केले जातात.
print() कन्सोल किंवा इतर मानक आउटपुट डिव्हाइसवर निर्दिष्ट संदेश आउटपुट करते.
get() डिक्शनरीमधून निर्दिष्ट कीशी संबंधित मूल्य पुनर्प्राप्त करते. की सापडली नाही तर डीफॉल्ट मूल्य मिळवते.
join() पुनरावृत्ती करण्यायोग्य (उदा. सूची किंवा टपल) च्या घटकांना एका निर्दिष्ट विभाजकासह एकाच स्ट्रिंगमध्ये जोडते.
f-string रनटाइमच्या वेळी कुरळे ब्रेसेसमधील अभिव्यक्तींचे मूल्यमापन करण्यास अनुमती देणारी स्वरूपित स्ट्रिंग लिटरल.

Python मध्ये *args आणि **kwargs मध्ये खोलवर जा

प्रदान केलेल्या स्क्रिप्ट्सचा वापर कसा करायचा ते दाखवतात *args आणि पायथन फंक्शन व्याख्यांमध्ये. पहिली स्क्रिप्ट फंक्शन परिभाषित करते foo जे दोन आवश्यक युक्तिवाद घेते, x आणि y, त्यानंतर कितीही अतिरिक्त पोझिशनल वितर्क द्वारे प्रस्तुत केले जातात *args. कॉल करताना foo अतिरिक्त युक्तिवादांसह, ते टपल म्हणून कॅप्चर केले जातात आणि मुद्रित केले जातात. हे फंक्शनला विविध आर्ग्युमेंट्स छानपणे हाताळण्याची परवानगी देते. दुसरे कार्य, , याद्वारे दोन आवश्यक युक्तिवाद आणि कितीही कीवर्ड वितर्क स्वीकारते . हे कीवर्ड आर्ग्युमेंट्स डिक्शनरीमध्ये एकत्रित केले जातात, फंक्शनला लवचिक नामांकित इनपुटवर प्रक्रिया करण्यास सक्षम करते.

दुसरी उदाहरण स्क्रिप्ट परिचय देते आणि greet चा वापर अधिक स्पष्ट करण्यासाठी कार्ये *args आणि . द क्रमशः ट्यूपल्स आणि डिक्शनरीमध्ये त्यांचे संग्रह प्रदर्शित करून, स्थितीत्मक आणि कीवर्ड दोन्ही युक्तिवाद मुद्रित करते. द greet फंक्शन एक व्यावहारिक वापर केस हायलाइट करते जेथे सानुकूल करण्यायोग्य ग्रीटिंग मेसेज सारख्या वैकल्पिक कीवर्ड युक्तिवादांना अनुमती देते. फायदा करून get() वर १७ डिक्शनरीमध्ये, जेव्हा ग्रीटिंग कीवर्ड पुरविला जात नाही तेव्हा फंक्शन एक डीफॉल्ट मूल्य प्रदान करू शकते, वास्तविक-जगातील परिस्थितींमध्ये या रचना वापरण्याची लवचिकता आणि सामर्थ्य दर्शवते.

पायथन फंक्शन्समध्ये *args आणि **kwargs वापरणे

अजगर

def foo(x, y, *args):
    print("Required arguments:", x, y)
    print("Additional arguments:", args)

def bar(x, y, **kwargs):
    print("Required arguments:", x, y)
    print("Keyword arguments:", kwargs)

foo(1, 2, 3, 4, 5)
# Output:
# Required arguments: 1 2
# Additional arguments: (3, 4, 5)

bar(1, 2, a=3, b=4, c=5)
# Output:
# Required arguments: 1 2
# Keyword arguments: {'a': 3, 'b': 4, 'c': 5}

*args आणि **kwargs चा वापर समजून घेणे

अजगर

*args आणि **kwargs चा प्रगत वापर

मूलभूत उदाहरणांच्या पलीकडे, *args आणि प्रगत पायथन प्रोग्रामिंगमध्ये आश्चर्यकारकपणे शक्तिशाली साधने असू शकतात. एक प्रगत वापर केस फंक्शन डेकोरेटर्समध्ये आहे. डेकोरेटर हा त्यांचा वास्तविक कोड न बदलता फंक्शन्स किंवा पद्धती सुधारण्याचा किंवा वाढवण्याचा एक मार्ग आहे. वापरून *args आणि , डेकोरेटर्सना कितीही आर्ग्युमेंट्ससह काम करण्यासाठी लिहिले जाऊ शकते, ज्यामुळे ते अत्यंत लवचिक आणि पुन्हा वापरता येतील. उदाहरणार्थ, लॉगिंग डेकोरेटर कोणतेही फंक्शन स्वीकारू शकतो, त्याचे वितर्क लॉग करू शकतो आणि रिटर्न व्हॅल्यू देऊ शकतो आणि नंतर ते युक्तिवाद वापरून मूळ फंक्शनमध्ये पास करू शकतो. *args आणि . हे डेकोरेटरला कोणत्याही बदलाशिवाय वेगवेगळ्या स्वाक्षरीच्या कार्यांसह वापरण्याची परवानगी देते.

दुसरा प्रगत अनुप्रयोग वर्ग पद्धती आणि वारसा संदर्भात आहे. बेस क्लास पद्धत परिभाषित करताना जी वापरते *args आणि , व्युत्पन्न वर्ग ही पद्धत ओव्हरराइड करू शकतात आणि तरीही त्यांना स्पष्टपणे सूचीबद्ध न करता अतिरिक्त युक्तिवाद स्वीकारू शकतात. हे कोड देखभाल सुलभ करू शकते आणि लवचिकता वाढवू शकते, कारण बेस क्लासला सर्व संभाव्य युक्तिवाद आधीच माहित असणे आवश्यक नाही. शिवाय, *args आणि मूळ वर्गाच्या वर्तनाचा विस्तार करताना किंवा सुधारित करताना त्याची पूर्ण कार्यक्षमता राखून ठेवली जाईल याची खात्री करून, पालक वर्ग पद्धतींकडे युक्तिवाद अग्रेषित करण्यासाठी वापरला जाऊ शकतो.

*args आणि **kwargs बद्दल वारंवार विचारले जाणारे प्रश्न

  1. काय आहेत *args?
  2. त्यांचा उपयोग फंक्शनला पोझिशनल आर्ग्युमेंट्सची व्हेरिएबल संख्या पास करण्यासाठी केला जातो.
  3. काय आहेत ?
  4. ते आपल्याला फंक्शनमध्ये कीवर्ड वितर्कांची व्हेरिएबल संख्या पास करण्याची परवानगी देतात.
  5. मी वापरू शकतो *args आणि एकत्र?
  6. होय, तुम्ही एकाच फंक्शनमध्ये दोन्हीचा वापर पोझिशनल आणि कीवर्ड वितर्कांचे कोणतेही संयोजन हाताळण्यासाठी करू शकता.
  7. मी पास केलेल्या वितर्कांमध्ये प्रवेश कसा करू शकतो *args?
  8. ते फंक्शनमध्ये टपल म्हणून प्रवेश करण्यायोग्य आहेत.
  9. मी पास केलेल्या वितर्कांमध्ये प्रवेश कसा करू शकतो ?
  10. ते फंक्शनमध्ये शब्दकोश म्हणून प्रवेश करण्यायोग्य आहेत.
  11. मी का वापरणार *args?
  12. फंक्शनला त्याची लवचिकता वाढवून, कितीही स्थितीत्मक युक्तिवाद स्वीकारण्यास अनुमती देण्यासाठी.
  13. मी का वापरणार ?
  14. कितीही कीवर्ड वितर्क स्वीकारणे, जे फंक्शन अधिक बहुमुखी बनवू शकते.
  15. करू शकतो *args आणि वेगळे नाव ठेवायचे?
  16. होय, नावे परंपरा आहेत, परंतु तुम्ही त्यांना तुम्हाला आवडेल ते नाव देऊ शकता.
  17. वापरण्याचे व्यावहारिक उदाहरण काय आहे *args?
  18. त्यांची बेरीज करणाऱ्या फंक्शनमध्ये एकाधिक मूल्ये पास करणे.
  19. वापरण्याचे व्यावहारिक उदाहरण काय आहे ?
  20. कीवर्ड वितर्कांमधून शब्दकोश तयार करणारे फंक्शन तयार करणे.

*args आणि **kwargs सह रॅपिंग अप

समजून घेणे आणि उपयोग करणे *args आणि पायथन फंक्शन्समध्ये तुमचे प्रोग्रामिंग कौशल्य लक्षणीयरीत्या सुधारू शकते. ही साधने फंक्शन डेफिनिशनमध्ये उच्च प्रमाणात लवचिकता देतात, ज्यामुळे तुम्हाला अधिक डायनॅमिक आणि पुन्हा वापरता येण्याजोगे कोड लिहिण्याची परवानगी मिळते. या संकल्पनांवर प्रभुत्व मिळवून, तुम्ही तुमच्या फंक्शन्समध्ये वितर्कांची विस्तृत श्रेणी हाताळू शकता, ज्यामुळे तुमचा कोड अधिक जुळवून घेता येईल आणि देखरेख करणे सोपे होईल.

तुम्ही डेकोरेटर लिहित असाल, वर्गात वारसा हाताळत असाल किंवा फक्त अज्ञात संख्येत वाद घालू इच्छित असाल, *args आणि आवश्यक कार्यक्षमता प्रदान करा. या वैशिष्ट्यांसह त्यांची पूर्ण क्षमता उघड करण्यासाठी प्रयोग करत राहा आणि अधिक कार्यक्षम आणि शक्तिशाली पायथन प्रोग्रामिंगसाठी त्यांना तुमच्या कोडिंग पद्धतींमध्ये समाकलित करा.