在Python中,多態性是指不同類的對象可以使用相同的方法名稱,但具有不同的實現。這意味著我們可以使用一個通用的接口來處理不同類型的對象,而不需要知道它們的具體實現細節。多態性提高了代碼的可擴展性和可維護性。
在Python中,多態性主要通過繼承和重寫父類方法來實現。當子類繼承父類時,子類會自動獲得父類的所有屬性和方法。子類可以選擇保留父類的方法,或者重寫(override)它們以提供新的實現。這樣,我們可以使用父類的引用來調用子類的方法,而不需要知道具體的子類實現。
下面是一個簡單的例子,展示了如何使用多態性來處理不同類型的圖形:
class Shape:
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * (self.radius ** 2)
def print_area(shape):
print("Area:", shape.area())
rectangle = Rectangle(3, 4)
circle = Circle(5)
print_area(rectangle) # 輸出:Area: 12
print_area(circle) # 輸出:Area: 78.5
在這個例子中,Rectangle
和Circle
類都繼承了Shape
類,并重寫了area
方法。我們定義了一個print_area
函數,它接受一個Shape
類型的參數,并調用其area
方法。由于多態性,我們可以傳遞Rectangle
或Circle
對象給print_area
函數,而不需要修改函數的實現。這就是Python中多態性的體現。