class Person(object): def __init__(self, name): self.name = name def get_details(self): "Returns a string containing name of the person" return self.name class Student(Person): def __init__(self, name, branch, year): Person.__init__(self, name) self.branch = branch self.year = year def get_details(self): "Returns a string containing student's details." return "%s studies %s and is in %s year." % (self.name, self.branch, self.year) class Teacher(Person): def __init__(self, name, papers): Person.__init__(self, name) self.papers = papers def get_details(self): return "%s teaches %s" % (self.name, ','.join(self.papers)) person1 = Person('Ali') student1 = Student('Amir', 'CSE', 2005) teacher1 = Teacher('Reza', ['C', 'C++']) print(person1.get_details()) print(student1.get_details()) print(teacher1.get_details())