python下的抽象类的用途和意义?

Python017

python下的抽象类的用途和意义?,第1张

抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象方法的简单的方法是:\x0d\x0aclass Sheep(object):\x0d\x0adef get_size(self):\x0d\x0araise NotImplementedError\x0d\x0a任何从Sheep继承下来的子类必须实现get_size方法。否则就会产生一个错误。但这种实现方法有个缺点。定义的子类只有调用那个方法时才会抛错。这里有个简单方法可以在类被实例化后触发它。使用python提供的abc模块。\x0d\x0aimport abc\x0d\x0aclass Sheep(object):\x0d\x0a__metaclass__ = abc.ABCMeta\x0d\[email protected]\x0d\x0adef get_size(self):\x0d\x0areturn\x0d\x0a这里实例化Sheep类或任意从其继承的子类(未实现get_size)时候都会抛出异常。\x0d\x0a因此,通过定义抽象类,可以定义子类的共同method(强制其实现)。

抽象类是一个特殊的类,它只能被继承,不能被实例化。python中如果要使用抽象类则需要导入模块 abc ,

在定义抽象类的时候,需要添加参数 metaclass=abc.ABCMeta ,在定义抽象方法时需要在方法前添加声明

注意,我们只需写出方法的名称,不用写出具体的方法内容。

例如:

或者我们也可以写成