К какой парадигме программирования относится Python: ООП или ФП

Ответ

Python — это мультипарадигменный язык программирования. Он гибко поддерживает несколько парадигм, но его основной дизайн и философия построены вокруг объектно-ориентированного программирования (ООП).

1. Объектно-ориентированное программирование (ООП) — основа

В Python всё является объектом: числа, строки, функции и классы. Он полностью поддерживает ключевые принципы ООП: инкапсуляцию, наследование и полиморфизм.

Пример:

class Car:
    def __init__(self, brand):
        self.brand = brand

    def drive(self):
        return f"{self.brand} is driving."

my_car = Car("Tesla")
print(my_car.drive()) # Вывод: Tesla is driving.

2. Функциональное программирование (ФП) — мощный инструмент

Python также включает множество элементов из функционального программирования, которые позволяют писать более лаконичный и выразительный код.

Ключевые элементы ФП в Python:

  • Функции высшего порядка: map(), filter(), reduce().
  • Неизменяемые типы данных: tuple, frozenset.
  • Лямбда-функции для создания анонимных функций.
  • List comprehensions и генераторы как декларативная альтернатива циклам.

Пример:

numbers = [1, 2, 3, 4, 5]

# Использование map и лямбда-функции для возведения в квадрат
squares = list(map(lambda x: x * x, numbers))
print(squares) # Вывод: [1, 4, 9, 16, 25]

Итог: Хотя Python предоставляет мощные функциональные инструменты, его ядро является объектно-ориентированным. Наиболее эффективный код на Python часто сочетает лучшие черты обеих парадигм.