Встречается на собеседованиях • сегодня
Есть ли интерфейсы в Python
В Python нет явного синтаксиса для интерфейсов как в Java или C#, но их можно реализовать несколькими способами:
- ABC (Abstract Base Classes) - наиболее Pythonic способ:
python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Circle(Shape):
def area(self):
return 3.14 * self.radius**2
text
2. **Протоколы (с Python 3.8+)** - структурная типизация:
```python
from typing import Protocol
class Drawable(Protocol):
def draw(self) -> None: ...
def render(item: Drawable):
item.draw()- Duck typing - неявные интерфейсы:
python
class Duck:
def quack(self):
print("Quack!")
def make_sound(obj):
obj.quack() # Работает с любым объектом, имеющим метод quack()Python предпочитает "утиную типизацию" - если объект ведет себя как интерфейс (имеет нужные методы), он считается реализующим этот интерфейс. ABC и Protocol используются для явного указания контрактов, когда это необходимо.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы