为什么Django的Meta是老式类?

19 投票
2 回答
1777 浏览
提问于 2025-04-15 17:39

我注意到在Django的模型里,有一个叫做 class Meta 的东西,它用来对模型做一些额外的定义。

我想问的是,为什么这个 Meta 是用老式的类来写的?(也就是说,它没有继承 object?)这样做是有原因的吗,还是说这只是个习惯?我在自己的项目里可以用新式的类来写吗?

2 个回答

9

因为类 Meta 只是一个简单的命名空间容器,所以继承对象(object)没有任何好处,只是多打了八个字符。如果你想这么做,也没什么坏处。

16

我觉得其实没有什么特别的理由(包括历史原因,因为新式类从Python 2.2就已经存在了),你完全可以选择使用新式类,而且这样做可能是个不错的主意(出于各种常见的原因)。

撰写回答