*args and **kwargs

Updated May 4, 2026

Short answer

Handling variable numbers of arguments.

Deep explanation

args captures non-keyword arguments as a tuple; *kwargs captures keyword arguments as a dictionary.

Real-world example

Creating a decorator that wraps functions with different signatures.

Common mistakes

  • Confusing the order: *args must always precede **kwargs.

Follow-up questions

  • Can I name them differently?

More Python interview questions

View all →