“mro()”是做什么的?

django.utils.functional.py中:

类型(res).mro()中的t的

:#<——这
如果t在自动调度中:
返回自调度[t][funcname](res,*args,**kw)

我不明白mro()。它是做什么的,“mro”是什么意思

跟着…:

&gt&燃气轮机&燃气轮机;A类(对象):通过
... 
&燃气轮机&燃气轮机&燃气轮机;A.。_umro__
(<类“\uuu main\uuuu.A”>,<类型“对象”>)
&燃气轮机&燃气轮机&燃气轮机;B(A)级:及格
... 
&燃气轮机&燃气轮机&燃气轮机;B.。uu mro__
(<class'\u main\u.B'>,<class'\u main\u.A'>,<type'object'>)
&燃气轮机&燃气轮机&燃气轮机;丙(甲)级:及格
... 
&燃气轮机&燃气轮机&燃气轮机;C._uMRO__
(<class'\u main\u.C'>,<class'\u main\u.A'>,<type'object'>)
&燃气轮机&燃气轮机&燃气轮机;

只要我们有单一继承,\uuuumro\uuuuu就是类、其基、其基的基等的元组,一直到对象(当然只适用于新样式的类)

现在,有了多重继承

&gt&燃气轮机&燃气轮机;D(B、C)级:及格
... 
&燃气轮机&燃气轮机&燃气轮机;D.。uu mro__
(<class'\uuu main\uuuu.D'>、<class'\uu main\uuuuu.B'>、<class'\uu main\uuuuuu.C'>、<class'\uu main\uuuuu.A'>、<type'object'>)

…您还可以得到保证,在\uuuuMRO\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

在类实例上获得的每个属性,而不仅仅是方法,在概念上都是沿着\uuuu mro\uuuu查找的,因此,如果祖先中有多个类定义了该名称,这将告诉您在哪里可以找到该属性——在定义该名称的\uuu mro\uuu中的第一个类中

发表评论