Какие знаешь основные принципы ООП в Python
Python
Junior
Без компании
Какие знаешь основные принципы ООП в Python
Ответы
Основные принципы ООП в Python:
- **Инкапсуляция** – сокрытие внутренней реализации и предоставление интерфейса для работы с объектом. В Python используется соглашение об именовании (`_` и `__` для protected/private атрибутов), но строгой инкапсуляции нет.
```
class Person:
def __init__(self, name):
self._name = name # protected
self.__secret = "confidential" # private (name mangling)
```
- **Наследование** – возможность создания новых классов на основе существующих. Python поддерживает множественное наследование.
```
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
```
- **Полиморфизм** – возможность использовать объекты разных классов через единый интерфейс. В Python реализуется через переопределение методов и утиную типизацию.
```
def make_sound(animal):
print(animal.speak())
make_sound(Dog()) # Выведет "Woof!"
```
- **Абстракция** – создание упрощённых моделей объектов. В Python реализуется через абстрактные классы (`abc` модуль) или просто через документирование ожидаемого интерфейса.
```
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
```