class Father:
pass
class Mother:
pass
class Son(Father): #单继承
pass
class Son(Father, Mother): #多继承(可以不止两个)
pass
class Father:
money = 100
def __init__(self,name, age):
self.name = name
self.age = age
def play_son(self):
print("%s正在打儿子"%self.name)
class Son(Father):
pass
f1 = Father("蔡徐坤","30")
print(Son.money)
Son.play_son(f1)

class Father:
money = 100
def __init__(self,name, age):
self.name = name
self.age = age
def play_son(self):
print("%s正在打儿子"%self.name)
class Son(Father):
money = 10
def play_son():
print("测试")
f1 = Father("蔡徐坤","30")
print(Son.money)
Son.play_son()

class Father:
money = 100
def __init__(self,name, age):
self.name = name
self.age = age
def play_son(self):
print("%s正在打儿子"%self.name)
class Son(Father):
money = 10
f1 = Father("蔡徐坤","30")
print(Son.money)
s1 = Son("自己", "18") #实例化Son的时候会触发继承的父类的init,所以需要传入两个参数
print(s1.name)
print(s1.__dict__)
print(Son.__dict__)
1. 当类之间有显著不同时,并且较小的类是较大类所需要的组件时,用组合比较好
2. 当类之间有很多相同的功能来提取这些共同的功能做成基类,用继承比较好
import abc
class All_file(metaclass = abc.ABCMeta):
@abc.abstractclassmethod
def read(self):
pass
@abc.abstractclassmethod
def write(self):
pass
class Disk(All_file):
def read(self):
print(‘disk read‘)
def write(self):
print(‘disk write‘)
class Cdrom(All_file):
def read(self):
print(‘cdrom read‘)
#此处少定义一个write函数,所以会报错
c1 = Cdrom()
import abc
class All_file(metaclass = abc.ABCMeta):
@abc.abstractclassmethod
def read(self):
pass
@abc.abstractclassmethod
def write(self):
pass
class Disk(All_file):
def read(self):
print(‘disk read‘)
def write(self):
print(‘disk write‘)
class Cdrom(All_file):
def read(self):
print(‘cdrom read‘)
d1 = Disk()
d1.read()
class A: #基类
def test(sslf):
print(‘A‘)
class B(A):
def test(self):
print(‘B‘)
class C(A):
def test(self):
print(‘C‘)
class D(C):
def test(self):
print(‘D‘)
class E(C):
def test(self):
print(‘C‘)
class F(D, E):
def test(self):
print(‘F‘)
f1 = F()
f1.test()
F--->D--->B--->E--->C---->A

print(F.__mro__)
而在python2中,有经典类之分,经典类继承按 深度优先即:F--->D---->B--->A---->E----->C
原文:https://www.cnblogs.com/dabai123/p/11451958.html