繁体   English   中英

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

[英]Trying to understand this function from Django source code

我试图了解模型形式在 Django 中是如何工作的,所以我正在浏览源代码,并绘制出来。

不过,我一直坚持在 forms.widgets.py 中的这个特定功能,我想知道是否有人可以解释它。 谢谢你。

“类型”参数是什么意思? ”中的参数是什么? 我知道这是返回一个新课程,但这就是我的理解范围。

这是原始代码的链接

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 元类和什么type

元类是类的类。 就像类定义类的实例的行为方式一样,元类定义类的行为方式。 类是元类的实例。

type是 Python 中常见的元类。 如果您想知道,是的, type本身就是一个类,并且它是它自己的类型。 ...要在 Python 中创建您自己的元类,您实际上只想将type类化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM