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).

Pyground

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.

Pyground

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.