Open bonfy opened 7 years ago
https://zhidao.baidu.com/question/288636207.html
abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助abc模块。ABC是Abstract Base Class的缩写。
抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象方法的简单的方法是:
class Sheep(object): def get_size(self): raise NotImplementedError
任何从Sheep继承下来的子类必须实现get_size方法。否则就会产生一个错误。但这种实现方法有个缺点。定义的子类只有调用那个方法时才会抛错。这里有个简单方法可以在类被实例化后触发它。使用python提供的abc模块。
import abc class Sheep(object): metaclass = abc.ABCMeta @abc.absractmethod def get_size(self): return
这里实例化Sheep类或任意从其继承的子类(未实现get_size)时候都会抛出异常。 因此,通过定义抽象类,可以定义子类的共同method(强制其实现)。
Python中的abc类是干嘛的,用来做什么