именной полиморфизм
"Для тех из вас, кто не знаком с Python, вот краткое введение в полиморфизм на основе имен. У объектов Python есть внутренний словарь, содержащий строку для каждого атрибута и метода. Когда вы обращаетесь к атрибуту или методу в коде Python, Python просто ищет строку в dict. Поэтому, если вам нужен класс, который работает как файл, вам не нужно наследовать от файла, вы просто создаете класс, который имеет необходимые методы файла.
Python также определяет набор специальных методов, которые вызываются с помощью соответствующего синтаксиса. Например, a + b эквивалентно a. add (b). Есть несколько мест внутри Python, где он напрямую манипулирует встроенными объектами, но полиморфизм на основе имен работает, как вы ожидаете, примерно в 98% случаев. «