Python是一門功能強大的面向對象編程語言,提供了許多抽象化機制,其中之一就是抽象類。抽象類是不能被實例化的類,在Python中通過聲明一個或多個方法為抽象方法來定義抽象類。
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def get_area(self): pass @abstractmethod def get_perimeter(self): pass class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def get_area(self): return self.width * self.height def get_perimeter(self): return 2 * (self.width + self.height) class Triangle(Shape): def __init__(self, base, height): self.base = base self.height = height def get_area(self): return 0.5 * self.base * self.height def get_perimeter(self): return self.base + 2 * (self.height ** 2 + self.base ** 2) ** 0.5
在上面的代碼中,我們定義了一個抽象類Shape和兩個子類Rectangle和Triangle。Shape類的get_area和get_perimeter方法都被聲明為抽象方法,所以這個類不能被實例化。
通過使用抽象類,我們可以定義一個通用的類,將一些通用方法定義為抽象方法,由子類進行實現。在上面的例子中,Rectangle和Triangle類都可以使用Shape類中定義的方法,這樣我們可以減少代碼重復。
上一篇vue big
下一篇c json 轉換為對象