W Pythonie2 deklaruje to, że Tablejest to klasa w nowym stylu (w przeciwieństwie do klasy „klasycznej”). W Pythonie3 wszystkie klasy są klasami w nowym stylu, więc nie jest to już konieczne.
Nowe klasy stylu mają kilka specjalnych atrybutów, których brakuje klasycznym klasom.
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__']
Również właściwości i super nie działają z klasycznymi klasami.
W Pythonie2 dobrym pomysłem jest uczynienie wszystkich klas klasami w nowym stylu. (Chociaż wiele klas w bibliotece standardowej to nadal klasy klasyczne, ze względu na kompatybilność wsteczną).
Ogólnie w stwierdzeniu takim jak
class Foo(Base1, Base2):
Foojest deklarowana jako klasa dziedzicząca po klasach bazowych Base1i Base2.
objectjest matką wszystkich klas w Pythonie. Jest to klasa w nowym stylu, więc dziedziczenie po objecttworzy Tableklasę w nowym stylu.