Какие знаешь типы полиморфизма в Python
Python
Middle
Arendadata
Какие знаешь типы полиморфизма в Python
Ответы
В Python есть несколько видов полиморфизма:
- **Ad-hoc полиморфизм** (перегрузка операторов) - один оператор работает по-разному с разными типами:
```
print(1 + 2) # сложение чисел
print('a' + 'b') # конкатенация строк
```
- **Параметрический полиморфизм** (дженерики) - функции/классы работают с разными типами:
```
def first_item(sequence):
return sequence[0]
print(first_item([1, 2])) # 1
print(first_item('abc')) # 'a'
```
- **Полиморфизм подтипов** (наследование) - дочерние классы переопределяют методы родителя:
```
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
```
Python использует утиную типизацию - если объект ведет себя нужным образом (имеет нужные методы), его тип не важен. Это делает полиморфизм в Python более гибким по сравнению со статически типизированными языками.