Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模型中的Django元声明_Python_Django - Fatal编程技术网

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中