早教吧 育儿知识 作业答案 考试题库 百科 知识分享

python中的问题new-style的class与classical的class的区别super()是用来干嘛的classA(object):definit(self):print"enterA"print"leaveA"classB(object):definit(self):print"enterB"

题目详情
python中的问题
  1. new-style的class与classical的class的区别

  2. super()是用来干嘛的

  3. class A(object):

      def __init__(self):

       print "enter A"

       print "leave A"


     class B(object):

      def __init__(self):

       print "enter B"

       print "leave B"


     class C(A):

      def __init__(self):

   print "enter C"

   super(C, self).__init__()

   print "leave C"


 class D(A):

  def __init__(self):

   print "enter D"

   super(D, self).__init__()

   print "leave D"

 class E(B, C):

  def __init__(self):

   print "enter E"

   B.__init__(self)

   C.__init__(self)

   print "leave E"


 class F(E, D):

  def __init__(self):

   print "enter F"

   E.__init__(self)

   D.__init__(self)

   print "leave F"


结果中,为什么出现两次enter D


▼优质解答
答案和解析
这个问题的核心是多种集成(MRO)问题。首先来看他们之间的关系。    object   |       \   |    &nbs...