关于类的继承的疑问,先谢过了

关于类的继承的疑问,先谢过了

class a:
    r=1       
class b(a):
    pass
class c(a):
    r=2       
class d(b,c):
    pass
k=d()
print k.r

结果是 1 ,访问顺序依次是 d,b,a,c

class a(object):
    r=1       
class b(a):
    pass
class c(a):
    r=2       
class d(b,c):
    pass
k=d()
print k.r

结果是 2,访问顺序依次是 d,b,c,a

========================

请问为什么a继承个object类就会有如此的变化啊……
class a(object)
这样定义a就是一个new style class
两种结果的区别就是new style class和普通class的区别之一啊
谢谢啊
能不能讲更具体一点呢
new style class 和 普通class 有些什么区别呢?
因为你的问题是一个“钻石问题”,在new-style class与classic class处理基类的顺序不同。建议找些new-style 的文档看一看。如果可能的话,最好避免此类的情况,因为麻烦。