在Python2中,这声明Table是一个
new-style class(相对于“经典”类)。
在Python3中,所有类都是新式类,因此不再需要。
新样式类有一些经典类缺少的特殊属性。
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__']
此外,properties和super不能与经典类一起使用。
在Python2中,使所有类都是新式类是一个好主意。 (虽然标准库中的很多类仍然是经典类,为了向后兼容)。
一般来说,在一个语句如
class Foo(Base1, Base2):
Foo被声明为继承基类Base1和Base2的类。
对象是Python中所有类的母亲。它是一个新式的类,所以从对象继承使Table成为一个新式的类。