Loading lessons...
Arguments and Keyword Arguments
Arguments and Keyword Arguments
Python gives you flexible ways to pass arguments.
Positional arguments
Values map to parameters in order:
def full(fname, lname):
print(fname, lname)
full("Emil", "Refsnes") # Emil Refsnes
Keyword arguments
Name the parameter when calling; order no longer matters:
def full(fname, lname):
print(fname, lname)
full(lname="Refsnes", fname="Emil") # Emil Refsnes
Default parameter value
If no argument is given, the default is used:
def country(country_name="Norway"):
print("I am from " + country_name)
country() # I am from Norway
country("Sweden") # I am from Sweden
Default vs required
A parameter with a default is optional; one without it is required.
*args: arbitrary positional arguments
When you don't know how many arguments, use *args:
def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Emil", "Tobias", "Linus") # Linus
The values arrive as a tuple.
**kwargs: arbitrary keyword arguments
def my_function(**kid):
print("His last name is " + kid["lname"])
my_function(fname="Tobias", lname="Refsnes") # Refsnes
The values arrive as a dictionary.
TL;DR
- Positional args follow parameter order; keyword args name them.
- Defaults make parameters optional.
*argscollects extra positional args as a tuple.**kwargscollects extra keyword args as a dict.