En Python2 esto declara que Table
es new-style class (a diferencia de la clase "clásica"). En Python3 todas las clases son de estilo nuevo, por lo que ya no es necesario.
Las nuevas clases de estilo tienen algunos atributos especiales que las clases clásicas carecen.
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__']
Además, properties y super no funcionan con las clases clásicas.
En Python2 es una buena idea hacer todas las clases de estilo nuevo. (Aunque una gran cantidad de clases en la biblioteca estándar siguen siendo las clases clásicas, por el bien de la compatibilidad hacia atrás.)
En general, en una declaración como
class Foo(Base1, Base2):
Foo
se declara como una clase heredando de las clases base Base1
y Base2
.
object
es la madre de todas las clases en Python. Es una clase de nuevo estilo, por lo que heredar de object
hace que Table
sea una clase de nuevo estilo.
posible duplicado de [Estilo antiguo y nuevas clases de estilo en Python] (http://stackoverflow.com/questions/54867/old-style-and-new-style-classes-in-python) – JBernardo