2011-01-08 1 views
3

В python, почему рекомендуется наследовать любой класс, который мы делаем из класса object, почему бы не сделать его напрямую как базовый класс? Важно отметить, что объявление __slots__ не работает, если я делаю свой класс базовым классом (вместо этого в качестве подкласса класса object). Какие еще преимущества/недостатки у меня есть, наследуя мой класс от класса object?Почему хорошая натура для наследования любого класса, который мы делаем из класса «объект»?

+0

Это не совсем дубликат, но обратитесь к http://stackoverflow.com/questions/54867/old-style-and-new-style-classes-in-python. –

+0

Возможный дубликат [класс python наследует объект] (http://stackoverflow.com/questions/4015417/python-class-inherits-object) – hop

+0

вы можете легко найти это, выполнив поиск «наследование python от объекта» – hop

ответ

6

В python2, вы должны наследовать от объекта, чтобы создать "new-style" class. Такие вещи, как дескрипторы, super и __slots__, не работают корректно с классами «старого стиля», но классы старого стиля оставались для обратной совместимости.

В Python3 все классы являются классами нового типа, поэтому наследование с object больше не требуется.

0

при наследовании от объекта вы создаете новый класс стиля, без него у вас есть старый класс стиля смотрите: http://www.python.org/doc/newstyle/ более

Смежные вопросы