实例变量和类变量

#######    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为参考

 

posted @ 2018-11-25 16:02  团子emma  阅读(79)  评论(0)    收藏  举报