पिछले अध्याय में हमने Function, Parameters और Arguments की मूल अवधारणा को समझा। अब समय है Function Arguments के विभिन्न प्रकारों को विस्तार से सीखने का।
जब हम किसी Function को Call करते हैं, तब उसे Data भेजने के कई तरीके होते हैं। कभी Values का क्रम महत्वपूर्ण होता है, कभी Argument का नाम, कभी कुछ Parameters की Default Value होती है और कभी हमें पहले से नहीं पता होता कि कितने Arguments आएँगे।
Python इन सभी परिस्थितियों के लिए अलग-अलग प्रकार के Arguments प्रदान करता है।
इस अध्याय में हम Function Arguments के सभी प्रकार, उनके नियम, Syntax, उदाहरण, Practical Programs तथा सामान्य त्रुटियों (Errors) को विस्तार से समझेंगे।
जब किसी Function को Call करते समय वास्तविक Values भेजी जाती हैं, तो उन्हें Arguments कहते हैं।
उदाहरण:
def add(a, b):
print(a + b)
add(10, 20)
यहाँ:
- a, b → Parameters
- 10, 20 → Arguments
Python में Arguments के प्रकार
Python में मुख्य रूप से निम्न प्रकार के Arguments होते हैं—
- Positional Arguments
- Keyword Arguments
- Default Arguments
- Variable Length Arguments (*args)
- Keyword Variable Length Arguments (**kwargs)
जब Function Call करते समय Values उसी क्रम (Position) में भेजी जाती हैं जिस क्रम में Parameters बनाए गए हैं, तो उन्हें Positional Arguments कहते हैं।
function(parameter1, parameter2)
def student(name, course):
print(name)
print(course)
student("Rahul", "BCA")
Output
Rahul
BCA
student("BCA", "Rahul")
Output
BCA
Rahul
यह Syntax Error नहीं है, लेकिन परिणाम गलत होगा क्योंकि क्रम बदल गया।
जब Function Call करते समय Parameter का नाम लिखकर Value भेजी जाती है, तो उसे Keyword Argument कहते हैं।
इसमें Arguments का क्रम महत्वपूर्ण नहीं होता।
def student(name, course):
print(name)
print(course)
student(course="BCA", name="Rahul")
Output
Rahul
BCA
- Arguments का क्रम बदल सकता है।
- Code अधिक Readable बनता है।
- बड़े Functions में उपयोगी होता है।
जब Function Definition में किसी Parameter को पहले से एक Default Value दे दी जाती है, तो उसे Default Argument कहते हैं।
यदि Function Call करते समय उस Parameter के लिए कोई Value न दी जाए, तो Default Value का उपयोग होता है।
def greet(name="Student"):
print("Welcome", name)
greet()
greet("Rahul")
Output
Welcome Student
Welcome Rahul
def employee(name, city="Lucknow"):
print(name)
print(city)
employee("Amit")
employee("Rahul", "Kanpur")
- Default Parameters हमेशा अंत (Last) में होने चाहिए।
✔ सही
def add(a, b=10):
print(a + b)
❌ गलत
def add(a=10, b):
pass
यह SyntaxError देगा।
जब हमें पहले से यह पता न हो कि Function में कितने Arguments आएँगे, तब *args का उपयोग किया जाता है।
*args सभी Positional Arguments को एक Tuple के रूप में प्राप्त करता है।
def total(*numbers):
print(numbers)
total(10, 20, 30)
Output
(10, 20, 30)
def total(*numbers):
print(sum(numbers))
total(10, 20)
total(10, 20, 30, 40)
Output
30
100
def display(*items):
for item in items:
print(item)
display("Python", "Java", "C")
जब Function में कितने Keyword Arguments आएँगे यह पहले से ज्ञात न हो, तब **kwargs का उपयोग किया जाता है।
**kwargs सभी Keyword Arguments को एक Dictionary के रूप में प्राप्त करता है।
def student(**details):
print(details)
student(name="Rahul", age=20, city="Lucknow")
Output
{'name': 'Rahul', 'age': 20, 'city': 'Lucknow'}
def student(**details):
for key, value in details.items():
print(key, value)
student(name="Rahul", marks=90, city="Kanpur")
|
*args |
**kwargs |
|
Tuple Return करता है |
Dictionary Return करता है |
|
Positional Arguments लेता है |
Keyword Arguments लेता है |
|
* का उपयोग |
** का उपयोग |
Function में सभी प्रकार के Arguments
def student(name, course="BCA", *subjects, **details):
print(name)
print(course)
print(subjects)
print(details)
student(
"Rahul",
"BCA",
"Python",
"Java",
city="Lucknow",
marks=90
)
यदि सभी प्रकार के Arguments एक साथ उपयोग किए जाएँ, तो उनका क्रम यह होना चाहिए—
Positional Parameters
↓
Default Parameters
↓
*args
↓
**kwargs
उदाहरण
def demo(a, b=10, *args, **kwargs):
pass
Program 1 – Positional Argument
def add(a, b):
print(a + b)
add(10, 20)
def student(name, age):
print(name)
print(age)
student(age=20, name="Rahul")
def greet(name="Student"):
print("Hello", name)
greet()
greet("Neha")
def total(*numbers):
print(sum(numbers))
total(10,20,30)
def employee(**details):
for key, value in details.items():
print(key, value)
employee(name="Amit", salary=30000)
def add(a, b):
print(a + b)
add(10)
Error
TypeError: missing required positional argument
def test(a=10, b):
pass
क्योंकि Default Parameter के बाद Non-default Parameter नहीं लिखा जा सकता।
- Meaningful Parameter Names रखें।
- जहाँ आवश्यक हो, Default Arguments का उपयोग करें।
- Unknown Positional Values के लिए *args उपयोग करें।
- Unknown Keyword Values के लिए **kwargs उपयोग करें।
- बड़े Functions में Keyword Arguments का उपयोग करने से Code अधिक Readable बनता है।
परीक्षा की दृष्टि से महत्वपूर्ण तथ्य
- Positional Arguments में क्रम महत्वपूर्ण होता है।
- Keyword Arguments में Parameter का नाम लिखा जाता है।
- Default Arguments की Default Value होती है।
- *args सभी Positional Arguments को Tuple में Store करता है।
- **kwargs सभी Keyword Arguments को Dictionary में Store करता है।
- Default Parameters हमेशा अंत में लिखे जाते हैं (Non-default Parameters के बाद)।
Frequently Asked Questions (FAQs)
प्रश्न 1. Positional Argument क्या है?
जिसमें Values Parameters के क्रम के अनुसार भेजी जाती हैं।
प्रश्न 2. Keyword Argument का लाभ क्या है?
क्रम बदलने पर भी सही Parameter में Value पहुँचती है।
सभी अतिरिक्त Positional Arguments को Tuple के रूप में प्राप्त करता है।
प्रश्न 4. **kwargs क्या करता है?
सभी अतिरिक्त Keyword Arguments को Dictionary के रूप में प्राप्त करता है।
प्रश्न 5. Default Argument कब उपयोग किया जाता है?
जब किसी Parameter के लिए पहले से एक सामान्य (Default) Value निर्धारित करनी हो।
- Positional Arguments → क्रम महत्वपूर्ण
- Keyword Arguments → नाम के आधार पर Value
- Default Arguments → पहले से निर्धारित Value
- *args → Multiple Positional Arguments (Tuple)
- **kwargs → Multiple Keyword Arguments (Dictionary)
Python Variable Scope in Hindi – Local Variable, Global Variable, global Keyword, nonlocal Keyword, Namespace, LEGB Rule और Practical Programs। इसमें Variable Scope के सभी Concepts को विस्तार से समझेंगे।