Python полиморфизм: примеры и особенности
Полиморфизм в Python означает возможность использования объектов различных классов с одинаковым интерфейсом. В других словах, методы классов могут иметь одинаковые имена, но выполнять разные действия в зависимости от класса объекта, к которому они применяются.
Например, возьмем классы "Круг" и "Квадрат", которые имеют методы "площадь" и "периметр". Оба класса имеют одинаковый интерфейс, но логика методов различная. В этом случае мы можем использовать полиморфизм, чтобы вызвать функцию "площадь" для двух объектов разных классов, используя один и тот же метод:
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
def perimeter(self):
return 2 * 3.14 * self.radius
class Square:
def __init__(self, side):
self.side = side
def area(self):
return self.side ** 2
def perimeter(self):
return 4 * self.side
shapes = [Circle(5), Square(3)]
for shape in shapes:
print(f"Area: {shape.area()} \nPerimeter: {shape.perimeter()}")
В результате выполнения кода мы получим следующий вывод:
Area: 78.5
Perimeter: 31.400000000000002
Area: 9
Perimeter: 12
Таким образом, полиморфизм в Python позволяет использовать объекты разных классов со схожими интерфейсами, что упрощает разработку приложений и повышает гибкость программного кода.