我已经读过这是在Python中实现抽象类的最佳方法(而不是abc模块):
class Animal(object):
def speak(self):
raise NotImplementedError()
class Duck(Animal):
def speak(self):
print("quack")
class Cat(Animal):
def speak(self):
print("meow")
Run Code Online (Sandbox Code Playgroud)
但是,我应该使用抽象类吗?我应该或不应该只使用一个这样的课程:
class Duck(object):
def speak(self):
print("quack")
class Cat(Animal):
def speak(self):
print("meow")
Run Code Online (Sandbox Code Playgroud)
这个问题没有一个答案.你需要动物类型之间的一致界面吗?然后某种抽象基类将是有用的,无论它是否来自abc.如果鸭子是唯一的动物,或者它们之间几乎没有什么相似之处,那么很少有重点.