W Pythonie 2 nie dziedziczenie z object
spowoduje powstanie klasy w starym stylu, co między innymi powoduje type
uzyskanie różnych wyników:
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
vs.
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
Również zasady wielokrotnego dziedziczenia są różne w sposób, którego nawet nie będę próbował tutaj streszczać. Cała dobra dokumentacja dotycząca MI, którą widziałem, opisuje klasy w nowym stylu.
Wreszcie, w Pythonie 3 zniknęły klasy starego typu, a dziedziczenie z object
stało się niejawne. Dlatego zawsze preferuj nowe klasy, chyba że potrzebujesz wstecznej kompatybilności ze starym oprogramowaniem.
class Foo():
iclass Foo:
? Jak zauważyłem, oba działają w Pythonie 3.