Default Arguments in Python

In the previous article we saw the internal logic of Python functions and how they work. Now we will take a look at the Default Arguments in Python. Default arguments exist when the functions do not require values to be passed to them or the function accepts certain values even in the absence of user-given information. Let us look at an illustrative example scenario:

def printDetails(id, name="NA", price = "NA"):
     print(f "Id is {id}")
     print(f "Name is  {names}")
     print(f "Price is {price}")

printDetails(101, "abc", 100)
print()
printDetails(102)
print
printDetails(103, "xyz")
Output:
 Id is 101
 Name is  abc
 Price is 100

 Id is 102
 Name is  NA
 Price is NA
 Id is 103
 Name is  xyz
 Price is NA

Hence the program works with both the default value and then the subsequently modified value passed to the function.

Working with Default Arguments in Python

In Python, a non-default argument cannot follow a default argument.

def printDetails(id, name="NA", price):
     print(f" Id is {id}")
     print(f" Name is  {name}")
     print(f" Price is {price}")

printDetails(101, "abc", 100)
print()
printDetails(102)
print
printDetails(103, "xyz")
Output:
  File "main.py", line 1
    def printDetails(id, name="NA", price):
                     ^
SyntaxError: non-default argument follows default argument

The program produces this kind of error statement in such a scenario. Let us see a program where we use default and keyword arguments. In keyword arguments, we do not need to specify or follow a specific order.

def printDetails(id, name="NA", price="NA"):
     print(f" Id is {id}")
     print(f" Name is  {name}")
     print(f" Price is {price}")

printDetails(name="abc", id=100)
print()
printDetails(price=200, id=102)
print
printDetails(id=103)
Output:
 Id is 100
 Name is  abc
 Price is NA

 Id is 102
 Name is  NA
 Price is 200
 Id is 103
 Name is  NA
 Price is NA

Here, in the above program, the argument values can be provided in any order as they are keyword arguments.

Hence we have seen the usage of default arguments, in the next article we will delve further into Keyword Arguments.

1 thought on “Default Arguments in Python”

Leave a Comment