Python就業班——初識面向對象——練習——People

多重繼承_相同方法

 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)

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章