(continued from previous page def printrating(self)print("thanks % for your feedbackself _visitorname class testdef __init__(self)inheritance is not required for accessing class attribute print("sum_of_feedback (jungle class attribute"jungle sum_of_feedbackprint("total_num_feedback (ratejungle class attribute"ratejungle total_num_feedbacklisting main program #main py #import class 'jungle''ratejungleand 'testfrom junglebook py from junglebook import jungleratejungletest def main() ratejungle("meher" ratejungle("krishna" averagefeedback(average feedback test class is using other class attributes without inheritance test(''sum_of_feedback (jungle class attribute total_num_feedback (ratejungle class attribute '' standard boilerplate to set 'mainas starting function if __name__=='__main__'main(special methods there are some special methodwhich are invoked under certain cases __init__ method is invokedwhen an object of the instance is created in this sectionwe will see some more special methods __init__ and __del__ the __init__ method is invoked when object is createdwhereas __del__ is always invoked at the end of the codee we invoke the 'delat line of listing which deletes object ' and remaining objects are printed by line butafter line there is no further statementtherefore the 'delcommand will automatically executedand results at lines - will be displayed the 'delcommand is also known as 'destructorlisting __init__ and __del__ function delex py class studenttotalstudent def __init__(selfname)self name name student totalstudent + print("total students (init"self totalstudent (continues on next page object oriented programming