Skip to Content
PythonDefining FunctionsWorking with Parameters

Working with Function Parameters

Parameters are the inputs you define for a function, allowing you to pass data into it and make it flexible and reusable. Python offers a rich and powerful system for defining function parameters, giving you precise control over how a function can be called.

Let’s explore the different kinds of parameters you can define.

The Five Parameter Types

A Python function signature can include five different kinds of parameters. They must be defined in this specific order:

  1. Positional-Only Parameters (/)
  2. Positional-or-Keyword Parameters (Standard parameters)
  3. Default Arguments
  4. Keyword-Only Parameters (*)
  5. Variadic Keyword Parameters (**kwargs)
  6. Variadic Positional Parameters (*args)

Let’s break them down one by one.

1. Positional-or-Keyword Parameters

These are the most common type of parameters. They can be passed either by their position (order) or by their name (keyword).

PygroundTry It Out

Create a `greet` function with `name` and `greeting` parameters. Call it once using positional arguments and once using keyword arguments.

Expected Output:


Hello, Alice!
Hi, Bob!

Output:

Once you use a keyword argument in a function call, all subsequent arguments must also be keyword arguments.

Putting It All Together

Here is a complex function signature that uses several types of parameters in the correct order.

PygroundTry It Out

Analyze the following function signature and its call. Identify each type of parameter.

Expected Output:


Processing from input.csv to output.json.
Overwriting is enabled.
Metadata provided:
- author: Alice
- timestamp: 2023-10-27

Output:

In the example above:

  • source and target are positional-or-keyword parameters.
  • force_overwrite is a keyword-only parameter with a default value.
  • **metadata collects any additional keyword arguments.
Last updated on