Trong Python2, điều này tuyên bố Tablelà một lớp kiểu mới (trái ngược với lớp "cổ điển"). Trong Python3, tất cả các lớp đều là các lớp kiểu mới, vì vậy điều này không còn cần thiết nữa.
Các lớp kiểu mới có một vài thuộc tính đặc biệt mà các lớp cổ điển thiếu.
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__']
Ngoài ra, thuộc tính và siêu không hoạt động với các lớp cổ điển.
Trong Python2, bạn nên tạo tất cả các lớp là các lớp kiểu mới. (Mặc dù nhiều lớp trong thư viện chuẩn vẫn là các lớp cổ điển, vì lợi ích tương thích ngược.)
Nói chung, trong một tuyên bố chẳng hạn như
class Foo(Base1, Base2):
Foođang được khai báo là một lớp kế thừa từ các lớp cơ sở Base1và Base2.
objectlà mẹ của tất cả các lớp trong Python. Nó là một lớp kiểu mới, vì vậy kế thừa từ objecttạo nên Tablemột lớp kiểu mới.