Sobes.tech
Middle

What are *args and **kwargs? How do they work?

sobes.tech AI

Answer from AI

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

  • *args collects positional arguments into a tuple.
  • **kwargs collects named arguments into a dictionary.

Example:

def func(*args, **kwargs):
    print('args:', args)
    print('kwargs:', kwargs)

func(1, 2, 3, a=4, b=5)

Output:

args: (1, 2, 3)
kwargs: {'a': 4, 'b': 5}

This is useful when the number of arguments is unknown in advance, or for wrappers and decorators.