CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: jackfrued/Python-100-Days
Path: blob/master/Day01-15/code/Day09/multi.py
Views: 729
1
"""
2
多重继承
3
- 通过多重继承可以给一个类的对象具备多方面的能力
4
- 这样在设计类的时候可以避免设计太多层次的复杂的继承关系
5
6
Version: 0.1
7
Author: 骆昊
8
Date: 2018-03-12
9
"""
10
11
12
class Father(object):
13
14
def __init__(self, name):
15
self._name = name
16
17
def gamble(self):
18
print('%s在打麻将.' % self._name)
19
20
def eat(self):
21
print('%s在大吃大喝.' % self._name)
22
23
24
class Monk(object):
25
26
def __init__(self, name):
27
self._name = name
28
29
def eat(self):
30
print('%s在吃斋.' % self._name)
31
32
def chant(self):
33
print('%s在念经.' % self._name)
34
35
36
class Musician(object):
37
38
def __init__(self, name):
39
self._name = name
40
41
def eat(self):
42
print('%s在细嚼慢咽.' % self._name)
43
44
def play_piano(self):
45
print('%s在弹钢琴.' % self._name)
46
47
48
# 试一试下面的代码看看有什么区别
49
# class Son(Monk, Father, Musician):
50
# class Son(Musician, Father, Monk):
51
52
53
class Son(Father, Monk, Musician):
54
55
def __init__(self, name):
56
Father.__init__(self, name)
57
Monk.__init__(self, name)
58
Musician.__init__(self, name)
59
60
61
son = Son('王大锤')
62
son.gamble()
63
# 调用继承自Father的eat方法
64
son.eat()
65
son.chant()
66
son.play_piano()
67
68