抽象
方法是基类中
定义的方法,但却没有任何实现。在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 ,在定义抽象方法时需要在方法前添加声明
注意,我们只需写出方法的名称,不用写出具体的方法内容。
例如:
或者我们也可以写成