classes and object-oriented programming specification of the __init__ function for that class to know what arguments to supply and what properties those arguments should have after this code is executedthere will be three instances of class person one can then access information about these instances using the methods associated with them for examplehim getlastname(will return 'obamathe expression him lastname will also return 'obama'howeverfor reasons discussed later in this writing expressions that directly access instance variables is considered poor formand should be avoided similarlythere is no appropriate way for user of the person abstraction to extract person' birthdaydespite the fact that the implementation contains an attribute with that value there ishowevera way to extract information that depends upon the person' birthdayas illustrated by the last print statement in the above code class person defines yet another specially named method__lt__ this method overloads the operator the method person__lt__ gets called whenever the first argument to the operator is of type person the __lt__ method in class person is implemented using the operator of type str the expression self name other name is shorthand for self name __lt__(self othersince self name is of type strthe __lt__ method is the one associated with type str in addition to providing the syntactic convenience of writing infix expressions that use <this overloading provides automatic access to any polymorphic method defined using __lt__ the built-in method sort is one such method sofor exampleif plist is list composed of elements of type personthe call plist sort(will sort that list using the __lt__ method defined in class person the code plist [mehimherfor in plistprint plist sort(for in plistprint will first print michael guttag barack hussein obama madonna and then print michael guttag madonna barack hussein obama