*args and **kwargs in Python

*args and **kwargs in Python

 

*args and **kwargs in Python 

🔍 What are *args and **kwargs in Python?

In Python, *args and **kwargs allow you to pass a variable number of arguments to a function.

  • 👉 *args → accepts multiple positional arguments
  • 👉 **kwargs → accepts multiple keyword arguments

✨ Why Use *args and **kwargs?

  • ✅ Makes functions flexible
  • ✅ Handles unknown number of inputs
  • ✅ Useful in real-world applications
  • ✅ Reduces code repetition

🧠 Understanding *args (Non-keyword Arguments)

*args allows a function to accept any number of positional arguments.

📌 Example:

def add_numbers(*args):
total = 0
for num in args:
total += num
return total

print(add_numbers(1, 2, 3, 4))

👉 Output:

10

🔍 How *args Works

  • *args collects arguments into a tuple
  • You can loop through it like a list
def show_args(*args):
print(args)

show_args(10, 20, 30)

👉 Output:

(10, 20, 30)

🧠 Understanding **kwargs (Keyword Arguments)

**kwargs allows a function to accept any number of keyword arguments.

📌 Example:

def display_info(**kwargs):
for key, value in kwargs.items():
print(key, ":", value)

display_info(name="Prathima", age=22)

👉 Output:

name : Prathima
age : 22

🔍 How **kwargs Works

  • **kwargs collects arguments into a dictionary
  • Keys = parameter names, Values = parameter values

🔄 Using *args and **kwargs Together

def demo(*args, **kwargs):
print("Args:", args)
print("Kwargs:", kwargs)

demo(1, 2, 3, name="Python", level="Beginner")

👉 Output:

Args: (1, 2, 3)
Kwargs: {'name': 'Python', 'level': 'Beginner'}

⚠️ Order of Parameters

When using all types together, follow this order:

def function_name(normal, *args, **kwargs):
pass

🚀 Real-World Example

def student_details(*args, **kwargs):
print("Subjects:", args)
print("Details:", kwargs)

student_details("Math", "Science", name="Ravi", grade="A")

📦 Advantages

  • ✔ Flexible function definitions
  • ✔ Clean and readable code
  • ✔ Useful in APIs and frameworks
  • ✔ Supports dynamic arguments

📝 Conclusion

Understanding *args and **kwargs in Python is essential for writing flexible and scalable functions. These concepts are widely used in advanced Python programming, including frameworks and libraries.


🔑 SEO Keywords

*args and **kwargs in Python, Python variable arguments, Python functions tutorial, Python keyword arguments, Python programming basics, Python advanced functions

Post a Comment

0 Comments