python中没有interface,因为python是可以多继承的,但有abstract class。 python中abstract class也不是原生态的, 还有一个ABC(abstract base class)也可以实现抽象类。
from abc import ABCMeta, abstractmethod class Drawable(): __metaclass__ = ABCMeta @abstractmethod def draw(self, x, y, scale=1.0): pass def draw_doubled(self, x, y): self.draw(x, y, scale=2.0) class Square(Drawable): def draw(self, x, y, scale): pass c=Square()
Square类一定要实现draw()方法, 否则, 当实例化一个Square对象时, 将报错TypeError: Can't instantiate abstract class Square with abstract methods draw