####### 1
class A():
y=8
d=676
def __init__(self):
self.x=9
self.d=99
class B(A):
# d=78
c=90
def __init__(self):
self.c=7
b=B()
print(b.d) #676
########### 2
class A():
y=8
# d=676
def __init__(self):
self.x=9
self.d=99
class B(A):
# d=78
c=90
def __init__(self):
self.c=7
b=B()
print(b.d) #'B' object has no attribute 'd'
########## 3
class A():
y=8
# d=676
def __init__(self):
self.x=9
self.d=99
class B(A):
d=78
c=90
# def __init__(self):
# self.c=7
b=B()
print(b.d) #99
########### 4
class A():
y=8
# d=676
def __init__(self):
self.x=9
self.d=99
class B(A):
d=78
c=90
def __init__(self):
self.c=7
self.d=345
b=B()
print(b.d) # 345
######### 5
class A():
y=8
# d=676
def __init__(self):
self.x=9
self.d=99
class B(A):
d=78
c=90
def __init__(self):
self.c=7
# self.d=345
b=B()
print(b.d) #78
总结,b 是B的实例化对象,首先去自己的实例变量空间去找,找不到的话自己的类变量空间去找,如果都没有,去自己的父类的 类变量空间去找,(前提是自己哟init方法,不执行父类的init方法),
如果自己没有init方法,要去执行父类的init方法,如果父类的init方法中含有要找的变量,那就以这个变量值为准,哪怕是自己的类变量有该变量,也不取,以实例3为参考