Короче, он освобождает волшебные пони.
В Python 2.2 и более ранних версиях использовались «классы старого стиля». Они представляли собой конкретную реализацию классов, и у них было несколько ограничений (например, нельзя встроить встроенные типы в подкласс). Исправление для этого состояло в том, чтобы создать новый стиль класса. Но выполнение этого повлекло бы за собой некоторые несовместимые назад изменения. Итак, чтобы убедиться, что код, который написан для классов старого стиля, все еще будет работать, класс object
был создан, чтобы действовать как суперкласс для всех классов нового стиля.
Итак, в Python 2.X class Foo: pass
создаст класс старого стиля, а class Foo(object): pass
создаст новый класс стиля.
Более подробно см. Гвидо Объединение типов и классов в Python 2.2 .
И вообще, неплохо бы привыкнуть делать все ваши классы в новом стиле, потому что некоторые вещи (декоратор @property
- это то, что приходит на ум) не будут работать в старом стиле классы.