Back to Blog

Arguments vs Parameters in Python — What is the Difference? (Common Questions #1)

Sandy LaneSandy Lane

Video: Arguments vs Parameters in Python — What is the Difference? (Common Questions #1) by Taught by Celeste AI - AI Coding Coach

Watch full page →

Arguments vs Parameters in Python — What is the Difference?

Understanding the difference between arguments and parameters is fundamental when working with Python functions. Parameters are the named variables in a function’s definition, while arguments are the actual values you pass to the function when calling it. This guide also covers positional and keyword arguments, default parameter values, and the use of *args and **kwargs for flexible function signatures.

Code

def greet(name, greeting="Hello", *args, **kwargs):
  # 'name' and 'greeting' are parameters; 'greeting' has a default value
  print(f"{greeting}, {name}!")

  # *args collects extra positional arguments as a tuple
  if args:
    print("Additional positional arguments:", args)

  # **kwargs collects extra keyword arguments as a dictionary
  if kwargs:
    print("Additional keyword arguments:", kwargs)

# Calling the function with:
# - 'Alice' as a positional argument for 'name'
# - 'Hi' as a keyword argument for 'greeting'
# - extra positional arguments 'How are you?' and 'Welcome!'
# - extra keyword arguments mood='happy' and time='morning'
greet("Alice", greeting="Hi", "How are you?", "Welcome!", mood="happy", time="morning")

Key Points

  • Parameters are variables defined in the function signature to accept values.
  • Arguments are the actual values passed to a function when it is called.
  • Positional arguments must be passed in order, while keyword arguments use parameter names.
  • Default parameter values allow functions to be called with fewer arguments.
  • *args and **kwargs enable functions to accept an arbitrary number of positional and keyword arguments.