gpt4 book ai didi

python - 试图从 Django 源码中理解这个函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:14:42 25 4
gpt4 key购买 nike

我正在尝试了解模型形式在 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 中为类定义的属性。但需要更多代码才能确定。

关于python - 试图从 Django 源码中理解这个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com