this is simple class that allows us to track couple pieces of data about each contact but what if some of our contacts are also suppliers that we need to order supplies fromwe could add an order method to the contact classbut that would allow people to accidentally order things from contacts who are customers or family friends insteadlet' create new supplier class that acts like our contact classbut has an additional order methodclass supplier(contact)def order(selforder)print("if this were real system we would send "'{}order to '{}'format(orderself name)nowif we test this class in our trusty interpreterwe see that all contactsincluding suppliersaccept name and -mail address in their __init__but only suppliers have functional order methodc contact("some body""somebody@example net" supplier("sup plier""supplier@example net"print( namec emails names emailsome body somebody@example net sup plier supplier@example net all_contacts [ order(" need pliers"traceback (most recent call last)file ""line in attributeerror'contactobject has no attribute 'orders order(" need pliers"if this were real system we would send ' need pliersorder to 'sup plier sonow our supplier class can do everything contact can do (including adding itself to the list of all_contactsand all the special things it needs to handle as supplier this is the beauty of inheritance