我正在尝试了解模型形式在 Django 中的工作原理,因此我将浏览源代码并绘制图表。
虽然我在 forms.widgets.py 中停留在这个特定的函数上,但我想知道是否有人可以解释它。谢谢。
“类型”参数是什么意思? “new”中的参数是什么?我知道这是在返回一个新类(class),但这就是我的理解范围。
Here is a link到原始代码。
class MediaDefiningClass(type):
"""
Metaclass for classes that can have media definitions.
"""
def __new__(mcs, name, bases, attrs):
new_class = super(MediaDefiningClass, mcs).__new__(mcs, name, bases, attrs)
if 'media' not in attrs:
new_class.media = media_property(new_class)
return new_class
请您参考如下方法:
在该位置键入表示它是该类的基类。有意义的是它定义了“类的类型”(定义为提供媒体的类)。
new 是创建实例的第一步。它首先被调用,并负责返回你的类的一个新实例。相反,init 不返回任何东西;它只负责实例创建后的初始化。
看起来您的新参数通过名称描述了新类。 name 中指定的 NAME,bases 中的基类和 atters 中为类定义的属性。但需要更多代码才能确定。
