Посмотрите разницу между классами старого и нового стиля. Первые являются значениями по умолчанию, а последние явно наследуются от объекта.
Все объекты старого стиля были реализованы со встроенным экземпляром типа. Тот факт, что они все еще являются значениями по умолчанию, а их тип остается «экземпляром», является результатом мер предосторожности в отношении ретро-совместимости.
3,3. Классы нового стиля и классы Классы и экземпляры бывают двух
вкусы: старый стиль (или классический) и
новый стиль.
До Python 2.1, классы старого стиля
были единственным вкусом, доступным для
пользователь. Концепция (старого стиля) класса
не имеет отношения к понятию типа:
если х является экземпляром старого стиля
класс, то х. класс обозначает
класс х, но тип (х) всегда
, Это отражает
Дело в том, что все экземпляры в старом стиле,
независимо от их класса, являются
реализовано с помощью одного встроенного
тип, называемый экземпляр.
Новые классы были введены в
Python 2.2 для унификации классов и типов.
Класс нового стиля - это не больше и не
меньше, чем пользовательский тип. Если х
экземпляр класса нового стиля, затем
тип (х) обычно такой же, как
x>. class (хотя это не
гарантировано - новый стиль
Экземпляр разрешено переопределить
значение, возвращаемое для x. class ).
Основная мотивация для введения
классы нового стиля, чтобы обеспечить
единая объектная модель с полным
мета-модель. Он также имеет ряд
практические преимущества, такие как способность
для подкласса большинства встроенных типов, или
введение «дескрипторов»,
которые включают вычисляемые свойства.
По причинам совместимости классы
по-прежнему в старом стиле по умолчанию. Новый стиль
классы создаются путем указания
другой класс нового стиля (то есть тип)
в качестве родительского класса или «верхнего уровня
тип », если нет другого родителя
необходимо. Поведение нового стиля
классы отличаются от старых
занятия в ряде важных
детали в дополнение к какому типу ()
возвращается. Некоторые из этих изменений
фундамент для новой объектной модели,
как то, как специальные методы
вызывается. Другие «исправления», которые могли
не будет реализовано раньше для
проблемы совместимости, такие как
порядок разрешения метода в случае
множественное наследование.
Хотя данное руководство призвано обеспечить
всеобъемлющий охват Python
класс механики, это еще может быть
не хватает в некоторых областях, когда речь идет о
его освещение классов нового стиля.
Посмотри пожалуйста
http://www.python.org/doc/newstyle/
для источников дополнительной информации.
Классы старого стиля удаляются в
Python 3.0, оставляя только семантику
классов нового стиля. классов нового стиля.