Write a program to explain pure function and modifier function

Pure Function

A pure function does not modify any of the objects it receives as arguments. It only returns a new value.

Example (from 16.2):

class Time:
    pass

def add_time(t1, t2):
    sum = Time()
    sum.hour = t1.hour + t2.hour
    sum.minute = t1.minute + t2.minute
    sum.second = t1.second + t2.second
    return sum

Usage:

start = Time()
start.hour = 9
start.minute = 45
start.second = 0

duration = Time()
duration.hour = 1
duration.minute = 35
duration.second = 0

done = add_time(start, duration)

This function does not alter start or duration. It returns a new Time object done.


Modifier Function

A modifier function changes the object it receives as an argument.

Example (from 16.3):

def increment(time, seconds):
    time.second += seconds
    if time.second >= 60:
        time.second -= 60
        time.minute += 1
    if time.minute >= 60:
        time.minute -= 60
        time.hour += 1

Usage:

increment(start, 75)

This function modifies the existing start object by incrementing its time.

Leave a Reply

Your email address will not be published. Required fields are marked *