多重繼承_相同方法
1 #!/usr/bin/env python3 2 # coding=utf-8 3 # Version:python3.6.1 4 # Project:practice 5 # File:People.py 6 # Data:2020/7/12 12:04 7 # Author:LGSP_Harold 8 """ 9 已知People、Speaker、Student爲三個自定義的類,其中People、S 10 peaker爲Student的父類。請按照Python中多繼承的方式進行編碼實 11 現下列效果圖所示功能。(注:People和Speaker中分別包含不同功 12 能的__init__( )和speak( )方法) 13 14 任務 15 1、自定義People類,並重寫其構造(初始化)方法__init__( ),將參 16 數n和a賦值給實例對象的屬性 17 2、自定義該類實例方法speak( ),功能:打印“xxx說: 我xxx歲” 18 3、自定義Speaker類,並重寫其構造(初始化)方法__init__( ),將參 19 數n、c、t賦值給實例對象的屬性 20 4、自定義該類實例方法speak( ),功能:打印“我叫xxx,我是一個xx 21 x,我演講的主題是 xxx” 22 5、實例化Student類對象s 23 6、調用父類的speak( )方法 24 7、根據效果圖進行格式化輸出 25 """ 26 27 28 class People(object): 29 30 def __init__(self, name, age): 31 self.name = name 32 self.age = age 33 34 def speak(self): 35 print('My name is {0}, my age is {1}.'.format(self.name, self.age)) 36 37 38 class Speaker(object): 39 40 def __init__(self, name, job, language): 41 self.name = name 42 self.job = job 43 self.language = language 44 45 def speak(self): 46 print('my name is {0}, I am a {1}, The Theme of my speech today is {2}.'.format(self.name, self.job, self.language)) 47 48 49 class Student(Speaker, People): 50 51 def __init__(self, name, age, job, language): 52 People.__init__(self, name, age) 53 Speaker.__init__(self, name, job, language) 54 55 def speak(self, classStudentSon, classSpeakerFather, classPeopleFather): 56 super(Student, self).speak() 57 s1 = issubclass(classStudentSon, classSpeakerFather) 58 s2 = issubclass(classStudentSon, classPeopleFather) 59 print('Student is or not is Speaker son: {0}; Student is or not is People son: {1}'.format(s1, s2)) 60 61 62 if __name__ == '__main__': 63 s = Student('Harold', 18, 'Student', 'Python') 64 s.speak(Student, Speaker, People)