我之前在猿问上遇到了这么个问题,也不知道答案,关注了几天也没人回复,希望明白的朋友帮忙解答下,谢谢。问题如下:
关于Python类的广度和深度优先问题?小白求教!
class A(object):
def __init__(self):
self.a = 1
def x(self):
print "A.x"
def y(self):
print "A.y"
def z(self):
print "A.z"
class B(A):
def __init__(self):
A.__init__(self)
self.a = 2
self.b = 3
def y(self):
print "B.y"
def z(self):
print "B.z"
class C(object):
def __init__(self):
self.a = 4
self.c = 5
def y(self):
print "C.y"
def z(self):
print "C.z"
class D(C,B):
def __init__(self):
C.__init__(self)
B.__init__(self)
self.d = 6
def z(self):
print "D.z"
obj = D()
print obj.a
obj.y()
这个代码class D(C,B)中的B和C调换位置obj.a
print出来永远是2,而obj.y()会随着位置调换改变输出值
感觉这既不符合深度优先也不符合广度优先?这是什么鬼??
慕九州1216299
相关分类