listing abstract methods are compulsory to define in childclass #scarysound py from junglebook import jungle class animal(jungle)def scarysound(self)print("animals are running away due to scary sound " class bird(jungle)def scarysound(self)print("birds are flying away due to scary sound " since jungle is defined as metaclass therefore all the abstract methods are compulsory be defined in child class class insect(jungle)def scarysound(self)print("insects do not care about scary sound "listing main function #main py #import class 'animalbirdfrom scarysound py from scarysound import animalbirdinsect def main()create objects of animal and bird class animal( bird( insect( polymorphism scarysound(animals are running away due to scary sound scarysound(birds are flying away due to scary sound scarysound(insects do not care about scary sound standard boilerplate to set 'mainas starting function if __name__=='__main__'main(public and private attribute there is not concept of private attribute in python all the attributes and methods are accessible to end users but there is convention used in python programming if variable or method name starts with ' 'then users should not directly access to itthere must be some methods provided by the class-author to access that variable or method similarly'__is designed for renaming the attribute with class name the attribute is automatically renamed as '_classname__attributenamethis is used to avoid conflict in the attribute names in different classesand is useful at the time of inheritancewhen parent and child class has same attribute name listing and listing show the example of attributes along with the methods to access them please read the comments to understand these codes listing public and private attribute #junglebook py (continues on next page object oriented programming