为什么Django的Meta是老式类?
我注意到在Django的模型里,有一个叫做 class Meta
的东西,它用来对模型做一些额外的定义。
我想问的是,为什么这个 Meta
是用老式的类来写的?(也就是说,它没有继承 object
?)这样做是有原因的吗,还是说这只是个习惯?我在自己的项目里可以用新式的类来写吗?
2 个回答
9
因为类 Meta 只是一个简单的命名空间容器,所以继承对象(object)没有任何好处,只是多打了八个字符。如果你想这么做,也没什么坏处。
16
我觉得其实没有什么特别的理由(包括历史原因,因为新式类从Python 2.2就已经存在了),你完全可以选择使用新式类,而且这样做可能是个不错的主意(出于各种常见的原因)。