'*...' and '**...' Wildcard Parameters in Function Definitions

Q

What are "*..." and "**..." Wildcard Parameters in Function Definitions?

✍: FYIcenter.com

A

If you want to define a function that receives a unknown number of parameters, you have to use the "*..." and "**..." Wildcard Parameters in the "def" statement using the following syntax:

def func_name(named_parameter,..., *list_params, **dict_params)

Where:

  • The "*list_params" wildcard parameter will receive all positional parameters from the calling statement, except whose matched by the named parameters. "*list_params" must be specified after any named parameters.
  • The "*dict_params" wildcard parameter will receive all keyword parameters from the calling statement, except whose matched by the named parameters. "*dict_params" must be specified after "*list_params".

Here is good example of a function with "*..." and "**..." wildcard parameters:

>>> def shopping(sugar=2, milk=4, *onePieces, **byKilos):
...     print("Sugar: "+str(sugar)+" bags")
...     print("Milk: "+str(milk)+" bottles")
...     for item in onePieces:
...         print(str(item)+": 1 piece")
...     for item in byKilos:
...         print(str(item)+": "+str(byKilos[item])+" kilos")
...
>>> shopping()
Sugar: 2 bags
Milk: 4 bottles
>>>
>>> shopping(1, 3, "Bread", "Pineapple")
Sugar: 1 bags
Milk: 3 bottles
Bread: 1 piece
Pineapple: 1 piece
>>>
>>> shopping(1, 3, "Bread", "Pineapple", Grape=2, Coffee=1)
Sugar: 1 bags
Milk: 3 bottles
Bread: 1 piece
Pineapple: 1 piece
Grape: 2 kilos
Coffee: 1 kilos

 

Defining Functions in Python

⇒⇒Python Tutorials

2017-09-09, 112👍, 0💬