【发布时间】:2019-08-09 10:38:18
【问题描述】:
我编写了以下代码来演示必须由其子类实现的抽象方法。我读到,当父类中的方法被装饰为抽象时,其子类必须实现它,否则无法实例化。但是,在下面的代码中,“Slug”子类没有实现抽象方法,但它仍然可以实例化而不会引发错误。我以为在这种情况下 Python 会抱怨?
我是不是误会了什么?
谢谢
import abc
class Animal(object):
__metaclass__ = abc.ABCMeta
def __init__(self, species):
self._species=species
def get_species(self):
return self._species
@abc.abstractmethod
def eat(self):
pass
class Slug(Animal):
def __init(self, species):
super(species)
def run(self):
print("running")
# def eat(self):
# pass
sl = Slug("slug")
print(sl.get_species())
【问题讨论】: