Dear learners, today we’re going to learn about the Python function arguments including default arguments, arbitrary arguments, and keyword arguments.
In our previous article, we talked about Python loops and how to use them. Without any further delay, let’s get started here.
Table of Contents
Understanding Python Functions and Function Arguments
A Python function is used to accomplish a specific task. When software becomes larger and more obscure, it becomes an absolute necessity to ensure we split up tasks into smaller chunks.
This can be done with the use of Python functions or with the use of object-oriented programming.
def function_name( arguments ) :
#define tasks here
You can have a function that accepts multiple arguments separated by commas.
For example, if you want to calculate the variable result were, result = x * ( y + z ). Then,
In this case, we first calculate the value of p and then multiply the same with the variable x.
Basics implementation of Python function arguments
Let’s convert the above expression into a Python function and pass these variables as arguments to the function.
'''
create a function for adding two variables. It will be needed to calculate p=y+z
'''
def calculateP( y , z ) :
return int( y ) + int( z )
'''
create a function for multiplying two variables. It will be needed to calculate p=y+z
'''
def calculateResult( x, p ) :
return int( x ) * int( p )
#Now this is the beginning of main program
x = input('x: ')
y = input('y: ')
z = input('z: ')
#Now Calculate p
p = calculateP ( y , z )
#Now calculate the result;
result = calculateResult( x , p )
#Print the result
print(result)
The output of the following code will be
================== RESTART: /home/imtiaz/Desktop/pyDef.py ==================
x: 2
y: 2
z: 3
10
Passing an arbitrary number of arguments to Python functions
We’ve looked at passing a static number of variables to a function. But what if we want to pass an arbitrary number of arguments to the function. Or we do not want to limit the number of arguments the function can work with.
In this case, we work with the asterisk (*) symbol as shown in the below example.
def varFunc(name,*args):
print("This is the first argument "+str(name))
#This print will make you understand that the args is a list
print(args)
for item in args:
print(item)
print("First time:")
varFunc("of 1st function call",2, 3, 4, 5)
print("Second time:")
varFunc("of 2nd function call","asd","Bcd")
print("Third time:")
varFunc("and only argument of 3rd function call")
The Output will be:
Passing with Key-Value Pairs as Function Arguments
Using the double-asterisk(**) sign, you can send over an arbitrary number of function arguments, and also pass them in any order. The .get() function is used to pull the variable values by specifying the keys. Let’s take a look at a demonstration here to understand this concept better.
def varFunc(name, roll, **option):
print("Name: "+name)
print("Roll: "+str(roll))
if "age" in option :
print("Age: "+ str(option.get("age")))
if "gender" in option:
print("Gender: "+ str(option.get("gender")))
print("First Person")
varFunc("Alice", 234, age=18, gender="female")
print("\nSecond Person")
#See, the order of argument age and gender is different now
varFunc("Bob", 204, gender="male", age=21)
print("\nThird Person")
#We will not pass age as and argument
varFunc("Trudy", 204, gender="male")
Output will be
================== RESTART: /home/imtiaz/Desktop/key_value_arg.py ==================
First Person
Name: Alice
Roll: 234
Age: 18
Gender: female
Second Person
Name: Bob
Roll: 204
Age: 21
Gender: male
Third Person
Name: Trudy
Roll: 204
Gender: male
>>>
Conclusion
That’s all for the article today! I hope you have learned about Python function arguments in a much more practical manner. Keep learning Python with our upcoming Python tutorials here.
Reference: Official Documentation