Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修复继承网络_Python - Fatal编程技术网

Python 修复继承网络

Python 修复继承网络,python,Python,o=H(),我需要为H绘制完整的继承网络。此外,我需要指出它的所有类搜索属性的顺序 下面是我画的图: 我不确定我的订单是否正确。有人能帮我修一下吗?键入。mro()将向您下订单: class A : pass class B : pass class C(A) : pass class D(A,B) : pass class E(A) : pass class F(C,D) : pass class G(B) : pass class H(E,F,G) : pass 正如您所看到的,您的编号

o=H(),我需要为H绘制完整的继承网络。此外,我需要指出它的所有类搜索属性的顺序

下面是我画的图:

我不确定我的订单是否正确。有人能帮我修一下吗?

键入。mro()将向您下订单:

class A : pass
class B : pass
class C(A) : pass
class D(A,B) : pass
class E(A) : pass
class F(C,D) : pass
class G(B) : pass
class H(E,F,G) : pass
正如您所看到的,您的编号中有许多错误。
如果需要层次结构,则可以使用
检查

>>> type.mro(H)
[__main__.H,
 __main__.E,
 __main__.F,
 __main__.C,
 __main__.D,
 __main__.A,
 __main__.G,
 __main__.B,
 object]

所以正确的顺序是H->E->F->C->D->A->G->B?是的,
mro
代表方法解析顺序。
>>> import inspect
>>> inspect.getclasstree(inspect.getmro(H))
[(object, ()),
 [(__main__.A, (object,)),
  [(__main__.C, (__main__.A,)),
   [(__main__.F, (__main__.C, __main__.D)),
    [(__main__.H, (__main__.E, __main__.F, __main__.G))]],
   (__main__.D, (__main__.A, __main__.B)),
   [(__main__.F, (__main__.C, __main__.D)),
    [(__main__.H, (__main__.E, __main__.F, __main__.G))]],
   (__main__.E, (__main__.A,)),
   [(__main__.H, (__main__.E, __main__.F, __main__.G))]],
  (__main__.B, (object,)),
  [(__main__.D, (__main__.A, __main__.B)),
   [(__main__.F, (__main__.C, __main__.D)),
    [(__main__.H, (__main__.E, __main__.F, __main__.G))]],
   (__main__.G, (__main__.B,)),
   [(__main__.H, (__main__.E, __main__.F, __main__.G))]]]]