Встречается на 3% собеседований по Python

Какие знаешь типы полиморфизма в Python

В Python есть несколько видов полиморфизма:

  1. Ad-hoc полиморфизм (перегрузка операторов) - один оператор работает по-разному с разными типами:
python
print(1 + 2)  # сложение чисел
print('a' + 'b')  # конкатенация строк
  1. Параметрический полиморфизм (дженерики) - функции/классы работают с разными типами:
python
def first_item(sequence):
    return sequence[0]

print(first_item([1, 2])) # 1
print(first_item('abc')) # 'a'

text

3. **Полиморфизм подтипов** (наследование) - дочерние классы переопределяют методы родителя:
```python
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

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

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы