В Python 3.x, который в настоящее время является языком де-факто, вообще нет никаких отличий: либо иметь явное наследование от объекта, либо оставить базы пустыми - это абсолютно то же самое.
Для Python 2, однако это другой вопрос - после того, как язык развил объектно-ориентированные синтаксисы с так называемыми «классами c классами», ряд улучшенных функций в механизмах наследования, выделения памяти, инициализации объекта, атрибута задумывался о поиске, а затем был введен object
обратно в Python 2.2 в качестве основы для того, что в жизненном цикле Python 2.x было названо «новыми стилями».
Итак, если вы видите, что некоторый код, который должен выполняться в Python 2, не наследуя от объекта, почти всегда является ошибкой, что может привести к тому, что во время выполнения будет сложно найти неправильное поведение (например, type(instance)
не будет работать должным образом) , вы не можете использовать дескрипторы, такие как "свойства" и т. д.).
Как указано выше, однако, все классы в Python 3.0 и выше "новые классы стиля". Явное наследование от объекта интересно, когда можно было бы написать код, который должен корректно работать как в Python 2, так и Python 3 - сегодня мало проектов сосредоточены на поддержании совместимости Python 2, и поэтому каждый будет видеть все меньше и меньше " объект "как явное основание в новом коде.