Python 模型中的Django元声明
我不知道这两个Python 模型中的Django元声明,python,django,Python,Django,我不知道这两个Meta声明之间是否有任何区别: class Car(models.Model): #... class Meta(object): # <------- (1) #... class Meta: # <------- (2) #... 等级车(型号.型号): #... 类元(对象):#不从任何对象继承的类称为旧式类 class old_style: pass class new_s
Meta
声明之间是否有任何区别:
class Car(models.Model):
#...
class Meta(object): # <------- (1)
#...
class Meta: # <------- (2)
#...
等级车(型号.型号):
#...
类元(对象):#不从任何对象继承的类称为旧式类
class old_style:
pass
class new_style(object):
pass
从对象继承的其他类称为新样式类
class old_style:
pass
class new_style(object):
pass
从新样式类继承的类也是新样式,因为它们最终从对象继承:
class new_style(object):
pass
class new_style2(new_style):
pass
在python 3中,所有类都是新类(从对象继承),因此在python 3中:
class e(object):
pass
class d:
pass
e==d
在这篇文章中,您可以阅读更多关于它们的差异/用法的信息。我从未见过使用的第一个示例Meta(object)
。我有一个使用python 2.7和Django 1.7的源代码。它使用第一个来声明verbose\u name
和verbose\u name\u复数
。这很有效。那么,你说他们两个在行动上是一样的?这是在使用旧样式。新样式的类包含一些bulit in方法/属性,但它们的创建速度较慢,旧样式的类只包含doc和module,但它们的创建速度要快得多——您可以在我链接的问题中阅读更多内容——如果您使用的是python 3,请忽略所有这些,因为旧式类只存在于python 2中