为什么django模型类不是“类型”类型?

时间:2013-05-04 18:14:10

标签: python django

使用python manage.py shell在django项目根目录下打开python shell,并观察以下内容:

>>> class A(object): pass #checking type of user-defined class
...
>>> type(A)
<type 'type'>
>>> class B(A): pass #checking type of child class
>>> type(B)
<type 'type'>
>>> from collections import OrderedDict #checking type of imported class
>>> type(OrderedDict)
<type 'type'>

现在看看:

>>> from my_project.models import MyModel
>>> type(MyModel)
<class 'django.db.models.base.ModelClass'>

有人能解释一下这里发生了什么吗? Django模型明确地定义为models.py中的类:

class MyModel(models.Model):
  pass

那么为什么它们在进口时不属于“类型”类型? Django是通过一些黑色魔法改变模型类型的,还是我只是遗漏了一些明显的东西?

0 个答案:

没有答案