classPerson(object):def__init__(self, name ='', age =20, sex ='man'):
self.setName(name)
self.setAge(age)
self.setSex(sex)defsetName(self, name):ifnotisinstance(name,str):print('name must be string')return
self.__name = name
defsetAge(self, age):ifnotisinstance(age,int):print('age must be integer')return
self.__age = age
defsetSex(self, sex):if sex notin('man','woman'):print('sex must be "man" or "woman"')
self.__sex = sex
defshow(self):print('Name:', self.__name)print('Age:', self.__age)print('Sex:', self.__sex)classTeacher(Person):def__init__(self, name='', age =30, sex ='man', department ='Computer'):super(Teacher, self).__init__(name, age, sex)#Person.__init__(self, name, age, sex)
self.setDepartment(department)defsetDepartment(self, department):ifnotisinstance(department,str):print('department must be a string.')return
self.__department = department
defshow(self):super(Teacher, self).show()print('Department:', self.__department)classStudent(Person):def__init__(self, name='', age =20, sex ='man', department ='Computer'):
Person.__init__(self, name, age, sex)
self.setDepartment(department)defsetDepartment(self, department):ifnotisinstance(department,str):print('department must be a string.')return
self.__department = department
defshow(self):
Person.show(self)print('Department:', self.__department)if __name__ =='__main__':print('='*30)
zhangsan = Person('Zhang San',19,'man')
zhangsan.show()print('='*30)
lisi = Teacher('Li Si',32,'man','Math')
lisi.show()print('='*30)
lisi.setAge(40)
lisi.show()print('='*30)
wangwu = Student('Wang Wu',21,'man','Math')
wangwu.show()