抽象类与归一化

从实现角度来看,抽象类与普通类的不同之处在于:抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,且子类必须实现抽象方法。这一点与接口有点类似,但其实是不同的
import abc #抽象化需要调用abc模块
class Ainmal(metaclass=abc.ABCMeta): #注意抽象 类可以当做其他子类 的父类,但是不能实例化
al = 'xxx'
@abc.abstractmethod #使用装饰器
def run(self):
pass
@abc.abstractmethod #使用装饰器
def eat(self):
pass

class Ponple(Ainmal):
def run(self):
print('跑跑跑')
def eat(self):
print('吃吃吃')
class Pig(Ainmal):
def run(self):
print('跑跑跑')
def eat(self):
print('吃吃吃')
class Dog(Ainmal):
def run(self):
print('跑跑跑')
def eat(self):
print('吃吃吃')

ponple = Ponple()
pig = Pig()
dog = Dog()
ponple.eat()
pig.run()
dog.eat()
print(ponple.al)
原文地址:https://www.cnblogs.com/yuexijun/p/10245843.html