Em Python2, isso declara Table
ser uma classe de novo estilo (em oposição à classe "clássica"). Em Python3, todas as classes são classes de novo estilo, então isso não é mais necessário.
As novas classes de estilo têm alguns atributos especiais que faltam às classes clássicas.
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__']
Além disso, propriedades e super não funcionam com classes clássicas.
Em Python2, é uma boa ideia criar um novo estilo de classes para todas as classes. (Embora muitas classes na biblioteca padrão ainda sejam classes clássicas, para fins de compatibilidade com versões anteriores.)
Em geral, em uma declaração como
class Foo(Base1, Base2):
Foo
está sendo declarado como uma classe que herda das classes base Base1
e Base2
.
object
é a mãe de todas as classes em Python. É uma classe de estilo novo, assim herdando de object
marcas Table
uma classe de estilo novo.