У Python 2 не спадкування від object
створить клас старого стилю, який, крім інших ефектів, призводить type
до різних результатів:
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
vs.
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
Також правила багаторазового успадкування різні за способами, які я навіть не намагаюся тут узагальнити. Вся хороша документація, яку я бачив про MI, описує класи нового стилю.
Нарешті, класи в старому стилі зникли в Python 3, і спадкування від object
стало неявним. Отже, завжди віддайте перевагу новим класам стилів, якщо вам не потрібно відсталий співвіт із старим програмним забезпеченням.
class Foo():
іclass Foo:
? Як я зауважую, обидві працюють у Python 3.