open python shell window you see the familiar python prompt type the following code (pressing enter after each line and pressing enter twice after the last line)class myclassgreeting "def __init__(selfname="there")self greeting name "!def sayhello(self)print("hello { }format(self greeting)this example provides your first example of function overloading in this casethere are two versions of __init__(the first doesn' require any special input because it uses the default value for the name of "therethe second requires name as an input it sets greeting to the value of this nameplus an exclamation mark the sayhello(method is essentially the same as previous examples in this python doesn' support true function overloading many strict adherents to strict object-oriented programming (oopprinciples consider default values to be something different from function overloading howeverthe use of default values obtains the same resultand it' the only option that python offers in true function overloadingyou see multiple copies of the same functioneach of which could process the input differently type myinstance myclassand press enter python creates an instance of myclass named myinstance type myinstance sayhelloand press enter you see the message shown in figure - notice that this message provides the defaultgeneric greeting type myinstance myclass("amy"and press enter python creates an instance of myclass named myinstance type myinstance sayhelloand press enter you see the message shown in figure - notice that this message provides specific greeting close the python shell window