版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
1、约束的实现
Foo类继承了父类Base,Base中存在f方法,f方法中抛出一个NotImplementedError的异常。在Foo中没有重写Base中的f方法时,调用f方法,抛出异常,表示Foo方法中必须重写f方法。通过这种做法,强制类中必须重写父类中的方法,进而可以实现约束。
# coding:utf-8
class Base(object):
def f(self):
raise NotImplementedError('f方法必须被重写!')
class Foo(Base):
pass
obj = Foo()
obj.f()
'''
NotImplementedError: f方法必须被重写!
'''
重写父类中的f方法自然就没有异常信息。
# coding:utf-8
class Base(object):
def f(self):
raise NotImplementedError('f方法必须被重写!')
class Foo(Base):
def f(self):
pass
obj = Foo()
obj.f()
2、约束的应用场景
多个类,内部都必须有某些方法时,需要使用基类+异常进行约束