In Python2 questo dichiara Tabledi essere una classe di nuovo stile (al contrario della classe "classica"). In Python3 tutte le classi sono classi di nuovo stile, quindi questo non è più necessario.
Le nuove classi di stile hanno alcuni attributi speciali che mancano alle classi classiche.
class Classic: pass
class NewStyle(object): pass
print(dir(Classic))
# ['__doc__', '__module__']
print(dir(NewStyle))
# ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
Inoltre, proprietà e super non funzionano con le classi classiche.
In Python2 è una buona idea creare classi di nuovo stile per tutte le classi. (Sebbene molte classi nella libreria standard siano ancora classi classiche, per motivi di compatibilità con le versioni precedenti.)
In generale, in una dichiarazione come
class Foo(Base1, Base2):
Fooviene dichiarato come una classe che eredita dalle classi base Base1e Base2.
objectè la madre di tutte le classi in Python. È una classe di nuovo stile, quindi ereditare da objectcrea Tableuna classe di nuovo stile.