फलन मॉड्यूलर और पुन:प्रयोग योग्य पाइथन कोड का आधार स्तंभ हैं। यह ट्यूटोरियल फलन आर्ग्यूमेंट्स की पेचीदगियों में गहराई से उतरता है, जिससे आपको स्वच्छ, अधिक कुशल और कम त्रुटि-प्रवण प्रोग्राम लिखने का ज्ञान प्राप्त होता है।
विषयवस्तु की तालिका
- स्थानीय आर्ग्यूमेंट्स
- कीवर्ड आर्ग्यूमेंट्स
- डिफ़ॉल्ट आर्ग्यूमेंट्स
- आर्ग्यूमेंट्स की परिवर्तनशील संख्या (*args और **kwargs)
- परिवर्तनशील बनाम अपरिवर्तनीय आर्ग्यूमेंट्स
स्थानीय आर्ग्यूमेंट्स
स्थानीय आर्ग्यूमेंट्स सबसे सरल रूप हैं। वे एक फलन को उस क्रम में पास किए जाते हैं जिसमें वे परिभाषित किए गए हैं। क्रम सख्ती से लागू किया जाता है; फलन कॉल के दौरान आर्ग्यूमेंट्स के क्रम का मिलान न करने से गलत परिणाम या त्रुटियां होंगी।
def greet(name, greeting):
print(f"{greeting}, {name}!")
greet("Alice", "Hello") # सही क्रम
greet("Hello", "Alice") # गलत क्रम - "Alice, Hello!" प्रिंट करेगा
कीवर्ड आर्ग्यूमेंट्स
कीवर्ड आर्ग्यूमेंट्स आपको फलन को कॉल करते समय आर्ग्यूमेंट नाम निर्दिष्ट करने की अनुमति देते हैं। यह आपके कोड को अधिक पठनीय और कम त्रुटि-प्रवण बनाता है, खासकर जब ऐसे फलनों से निपटते हैं जिनमें कई पैरामीटर होते हैं। कीवर्ड आर्ग्यूमेंट्स का क्रम मायने नहीं रखता।
def describe_pet(animal_type, pet_name, age=None):
print(f"nमेरे पास एक {animal_type} है।")
print(f"मेरे {animal_type} का नाम {pet_name.title()} है।")
if age:
print(f"मेरा {animal_type} {age} साल का है।")
describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='willie', animal_type='dog', age=5)
डिफ़ॉल्ट आर्ग्यूमेंट्स
डिफ़ॉल्ट आर्ग्यूमेंट्स फलन पैरामीटर के लिए एक फ़ॉलबैक मान प्रदान करते हैं। यदि फलन को कॉल करते समय कोई मान प्रदान नहीं किया जाता है, तो डिफ़ॉल्ट मान का उपयोग किया जाता है। डिफ़ॉल्ट आर्ग्यूमेंट्स को हमेशा फलन परिभाषा में गैर-डिफ़ॉल्ट आर्ग्यूमेंट्स के बाद रखा जाना चाहिए।
def power(base, exponent=2):
return base ** exponent
print(power(3)) # आउटपुट: 9 (घातांक डिफ़ॉल्ट रूप से 2 है)
print(power(3, 3)) # आउटपुट: 27
आर्ग्यूमेंट्स की परिवर्तनशील संख्या (*args और **kwargs)
`*args` और `**kwargs` सिंटैक्स आपको क्रमशः आर्ग्यूमेंट्स की परिवर्तनशील संख्या और कीवर्ड आर्ग्यूमेंट्स को संभालने की अनुमति देता है। `*args` स्थितिजन्य आर्ग्यूमेंट्स को एक टुपल में एकत्रित करता है, जबकि `**kwargs` कीवर्ड आर्ग्यूमेंट्स को एक डिक्शनरी में एकत्रित करता है।
def my_function(*args, **kwargs):
print("स्थितिजन्य आर्ग्यूमेंट्स:", args)
print("कीवर्ड आर्ग्यूमेंट्स:", kwargs)
my_function(1, 2, 3, name="Alice", age=30)
परिवर्तनशील बनाम अपरिवर्तनीय आर्ग्यूमेंट्स
फलन आर्ग्यूमेंट्स के साथ काम करते समय परिवर्तनशीलता को समझना महत्वपूर्ण है। अपरिवर्तनीय ऑब्जेक्ट्स (जैसे संख्याएँ, स्ट्रिंग्स, टुपल्स) को एक फलन के भीतर बदला नहीं जा सकता है; कोई भी परिवर्तन एक नया ऑब्जेक्ट बनाता है। परिवर्तनशील ऑब्जेक्ट्स (जैसे सूचियाँ, डिक्शनरी) को मौके पर ही संशोधित किया जा सकता है, जिससे फलन के बाहर मूल ऑब्जेक्ट प्रभावित होता है। यदि सावधानीपूर्वक नहीं संभाला जाता है तो इससे अप्रत्याशित दुष्प्रभाव हो सकते हैं।
def modify_list(my_list):
my_list.append(4) # मूल सूची को संशोधित करता है
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # आउटपुट: [1, 2, 3, 4] (मूल सूची संशोधित)
def modify_string(my_string):
my_string += "!!!" # एक नई स्ट्रिंग बनाता है
my_string = "Hello"
modify_string(my_string)
print(my_string) # आउटपुट: Hello (मूल स्ट्रिंग अपरिवर्तित)
यह व्यापक गाइड पाइथन में फलन आर्ग्यूमेंट्स के साथ काम करने के लिए एक ठोस आधार प्रदान करता है। इन अवधारणाओं में महारत हासिल करने से आपके कोड की गुणवत्ता और रखरखाव में काफी सुधार होगा।