Back to questions
Junior — Middle
58
Как хорошо Python поддерживает принципы объектно-ориентированного программирования?
Companies where asked
AGIMA
Answer from AI
sobes.tech AI
Python хорошо поддерживает основные принципы объектно-ориентированного программирования (ООП):
- Инкапсуляция: классы и объекты позволяют скрывать внутренние данные и методы, используя соглашения по именованию (например,
_privateили__mangled). - Наследование: Python поддерживает множественное наследование, что позволяет создавать иерархии классов.
- Полиморфизм: благодаря динамической типизации и duck typing объекты разных классов могут использоваться взаимозаменяемо, если имеют нужные методы.
- Абстракция: можно создавать абстрактные базовые классы с помощью модуля
abc.
Пример простого класса с наследованием и инкапсуляцией:
from abc import ABC, abstractmethod
class Animal(ABC):
def __init__(self, name):
self._name = name # защищённый атрибут
@abstractmethod
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self._name} говорит: Гав!"
dog = Dog("Бобик")
print(dog.speak()) # Бобик говорит: Гав!
Таким образом, Python предоставляет гибкие и мощные средства для ООП, хотя и с некоторыми особенностями, например, отсутствием строгой приватности.