An argument is a value that is passed to a function when it is called. It might be a variable, value, or object passed to a function or method as input.
In python, there are 3 different types of arguments we can give a function.
Default arguments: arguments that are given default values
Positional arguments: arguments that can be called by their position in the function definition
Keyword arguments: arguments that can be called by their name.
Default argument
We can give a default argument by using an assignment operator =
. This will happen in the function declaration.
Example:
def find_dinner_total(food, drinks, tip):
print(food + drinks + tip =15)
Our function is called find_dinner_total()
which will calculate the total cost for dinner π½οΈ. In our example our default argument is tip =15.
We can either choose to call the function without providing a value (this will result in the default value to be assigned) OR we can overwrite the default argument by entering a different value.
Positional argument
def find_diner_total(food, drinks, tip):
print(food + drinks + tip)
The first parameter passed is food
, second drinks
, and third is tip
.
When our function is called, the position of the arguments will be mapped based on the positions that are defined in the function declaration.
Example:
# $70 total for food
# $30 total for drinks
# 15 tip
diner_bill(70, 30, 15)
Keyword Arguments
In Keyword Arguments, where we refer to what each argument is assigned to in the function call.
Example:
dinner_bill(drinks=30, food=70, tip=15)
Top comments (6)
I do not know which version of python you use, but having a default for an argument with other arguments without default value after it is not allowed (at least in 3.8):
You can have arguments without defaults before arguments with defaults, but not after.
is fine but
Will throw the syntax error you show.
Thank you for mentioning this Matt!
I was not aware that you cannot have other arguments after default arguments. Thank you for mentioning this!
At least, run your code before posting it anywhere.