美文网首页
python继承类新式算法

python继承类新式算法

作者: thebeeman | 来源:发表于2017-04-28 10:55 被阅读0次

    #! /usr/bin/python

    # -*- coding:utf-8 -*-

    class P1(object):

      def foo(self):

        print 'p1-foo'

    class P2(object):

      def foo(self):

        print 'p2-foo'

      def bar(self):

        print 'p2-bar'

    class C1(P1,P2):

      pass

    class C2(P1,P2):

      def bar(self):

        print 'C2-bar'

    class D(C1,C2):

      pass

    if __name__ =='__main__':

      print D.__mro__  #只有新式类有__mro__属性,告诉查找顺序是怎样的

      d=D()

      d.foo()

      d.bar()

    执行的结果:

    (, , , , , )

    p1-foo

    C2-bar

    从上面新式类的输出结果来看,

    实例d调用foo()时,搜索顺序是 D => C1 => C2 => P1

    实例d调用bar()时,搜索顺序是 D => C1 => C2

    总结:新式类的搜索方式是采用“广度优先”的方式去查找属性。

    相关文章

      网友评论

          本文标题:python继承类新式算法

          本文链接:https://www.haomeiwen.com/subject/ycpozttx.html