Полиморфизм виден в len(), итерации и file-like объектах: один интерфейс работает с разными типами. Например, функция может писать и в файл, и в io.StringIO через общий метод write.
Приведите пример полиморфизма во встроенных или стандартных библиотеках Python.
Полиморфизм виден в len(), итерации и file-like объектах: один интерфейс работает с разными типами. Например, функция может писать и в файл, и в io.StringIO через общий метод write.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Полиморфизм виден в len(), итерации и file-like объектах: один интерфейс работает с разными типами. Например, функция может писать и в файл, и в io.StringIO через общий метод write.
from io import StringIO
def greeting(stream):
stream.write('Привет!\n')
buffer = StringIO()
greeting(buffer)
Тот же greeting работает с открытым текстовым файлом. Это duck typing: важен поддерживаемый контракт, а не обязательное наследование от одного пользовательского класса. Типизация Protocol может сделать такой контракт явным.