python function args code example

Example 1: args kwargs python

>>> def argsKwargs(*args, **kwargs):
...     print(args)
...     print(kwargs)
... 
>>> argsKwargs('1', 1, 'slgotting.com', upvote='yes', is_true=True, test=1, sufficient_example=True)
('1', 1, 'slgotting.com')
{'upvote': 'yes', 'is_true': True, 'test': 1, 'sufficient_example': True}

Example 2: use of kwargs and args in python classes

def myFun(*args,**kwargs): 
    print("args: ", args) 
    print("kwargs: ", kwargs) 
    
myFun('my','name','is Maheep',firstname="Maheep",lastname="Chaudhary")

# *args - take the any number of argument as values from the user 
# **kwargs - take any number of arguments as key as keywords with 
# value associated with them

Example 3: difference between args and kwargs in python

# We use *args and **kwargs as an argument when we are unsure 
# about the number of arguments to pass in the functions.

#This is an example of *args 
def adder(*num):
    sum = 0
    
    for n in num:
        sum = sum + n

    print("Sum:",sum)

adder(3,5)
adder(4,5,6,7)
adder(1,2,3,5,6)\


#This is an example of **kwargs
def intro(**data):
    print("\nData type of argument:",type(data))

    for key, value in data.items():
        print("{} is {}".format(key,value))

intro(Firstname="Sita", Lastname="Sharma", Age=22, Phone=1234567890)
intro(Firstname="John", Lastname="Wood", Email="[email protected]", Country="Wakanda", Age=25, Phone=9876543210)

Example 4: **kwargs

When it iterating over a dictionary you are only able to iterate over 
the keys not the values. The ** when placed before a variable will allow
you to iterate and unpack both key and value pairs. Because you are 
unpacking both key and value this will return the result as a dictionary.

Example 5: python function arguments

#*args and **kwargs are normally used as arguments when calling the function.

#*args returns as tuple and **kwargs returns as dictionary.

#*args and **kwargs  let you write functions with variable number of arguments in python.

def func(required,*args,**kwargs):
    return f"{required} {args} {kwargs}"
  
func("Nagendra",5,32,2,1,23,) #output == 'Nagendra (5, 32, 2, 1, 23) {}'
func("Nagendra",5,32,2,1,23,key1="55",key2="75") #output == "Nagendra (5, 32, 2, 1, 23) {'key1': '55', 'key2': '75'}"

#Very understable example of args.
#Given n number of arguments in a function calculate its average
def average(*args):
  '''
  As we already know *args means collection of values in a tuple.
  INPUT: arguments are given. example average(4,10,) 
  OUTPUT: average of two numbers (4+10)/2 == 14
  '''
  return sum(args)/len(args)

average(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) #output == 8.0