面向对象-07-约束

'''
1.必须遵循基类,继承基类中的方法:
eg:
class BaseMassage(object):
def send(self):
"""
必须继承BaseMassage,然后必须实现其中的send方法,用于完成业务逻辑
"""
raise NotInplenentedError(".authenticate() must be overridden.")
当我们去公司写程序时,一看到这个基类中的这个抛异常的方法就应该清楚,我们接下来写的派生类中必须编写该方法,否则程序可能会报错

2.python中的抽象类,抽象方法的编写:
编写抽象类必须从 abc 中导入ABCMeta
eg:
from abc import ABCMeta

class Base(metaclass=ABCMeta): #必须这么写,不然无法表示定义的该类为抽象类
#定义普通的实例方法
def f1(self):
print(123)

编写抽象方法还需再从abc中导入abstractmethod
eg:
from abc import ABCMeta,abstractmethod

class Base(metaclass=ABCMeta): #必须这么写,不然无法表示定义的该类为抽象类
#定义抽象方法需要在前面加上 @abstractmethod
@abstractmethod
def f2(self):
pass
# 注意了抽象方法必须要继承实现,否则就会报错.


'''
原文地址:https://www.cnblogs.com/gongteng/p/13567134.html