我试图理解模型在Django中是如何工作的,所以我要浏览源代码并将其绘制出来。
我仍然坚持使用forms.widgets.py中的这个特定功能,我想知道是否有人可以解释它。谢谢。
"类型"论证意味着? " 新"?中的参数是什么?我知道这是一个新的课程,但这是我的理解程度。
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
答案 0 :(得分:1)
键入该位置意味着它是该类的基类。有意义的是它定义了一种类型的类' (定义为提供媒体的类)。
新是实例创建的第一步。它首先被调用,并负责返回您班级的新实例。相反, init 不会返回任何内容;它只负责在创建实例后初始化实例。
看起来你的新参数按名称描述新类。名称中指定的NAME,base中的基类和atters中为类定义的attrs。但需要更多代码才能确定。
答案 1 :(得分:1)
This answer explains Python metaclasses and what type
is
元类是类的类。就像类定义了类的实例的行为一样,元类定义了类的行为方式。类是元类的实例。
type 是Python中常用的元类。如果你想知道,是的, type 本身就是一个类,它是它自己的类型。 ...要在Python中创建自己的元类,你真的只想继承 type 。