相干访问父类的实例成员
有关访问父类的实例成员
我写了下列代码
print First.aa 打印的是子类的类成员,有没有办法,打印父类的实例成员吗?
如果可以,得怎么写?
------解决方案--------------------
试一下
print First().aa
------解决方案--------------------
需要实例化,调用__init__才行,可以First().aa调用
------解决方案--------------------
First是类对象,First.aa打印的是类对象的属性。
First是实例对象,Self.aa是存在于实例对象中的,所以要First().aa来访问
------解决方案--------------------
是这样子的,父类和子类中变量同名,值就会产生改写,或者父类改写子类,或者子类改写父类.
Python是解释语言,无法预判类型,就无法对类对象进行强制转换,所以不能将子类的对象转换父类访问其变量和函数。Ptyhon中子类中的同名数据只有一份,(要么是父类的,要么是子类的),所以构造子类对象访问的数据要么是父类的,要么就是子类本身的。
------解决方案--------------------
由于执行了 First.__init__(self),所以,self.aa 就赋值了,子类同时继承了这个值
你运行下面这段看看,我把 First.__init__(self) 注释了
我写了下列代码
3 class First(object):
4 aa = "class"
5 def __init__(self):
6 self.aa = 3
7 print 'This is First init'
8
9
10 class Third(First):
11 def __init__(self):
12 self.aa = 4
13 First.__init__(self)
14 print "This is Third init"
15 def show(self):
16 print self.aa
17 print First.aa
18 th = Third()
19 th.show()
print First.aa 打印的是子类的类成员,有没有办法,打印父类的实例成员吗?
如果可以,得怎么写?
python 父实 实例成员
------解决方案--------------------
试一下
print First().aa
------解决方案--------------------
需要实例化,调用__init__才行,可以First().aa调用
------解决方案--------------------
First是类对象,First.aa打印的是类对象的属性。
First是实例对象,Self.aa是存在于实例对象中的,所以要First().aa来访问
------解决方案--------------------
是这样子的,父类和子类中变量同名,值就会产生改写,或者父类改写子类,或者子类改写父类.
...
class Third(First):
def __init__(self):
self.aa = 4
First.__init__(self) #这块是父类改写子类的aa
print "This is Third init"
def show(self):
print self.aa#打印出来的是父类的值self.aa=3
print First.aa
th = Third()#子类对象
th.show()
Python是解释语言,无法预判类型,就无法对类对象进行强制转换,所以不能将子类的对象转换父类访问其变量和函数。Ptyhon中子类中的同名数据只有一份,(要么是父类的,要么是子类的),所以构造子类对象访问的数据要么是父类的,要么就是子类本身的。
------解决方案--------------------
由于执行了 First.__init__(self),所以,self.aa 就赋值了,子类同时继承了这个值
你运行下面这段看看,我把 First.__init__(self) 注释了
class First(object):
aa = "class"
def __init__(self):
self.aa = 3
print 'This is First init'
class Third(First):
def __init__(self):
self.aa = 4
# First.__init__(self)
print "This is Third init"
def show(self):
print self.aa
print First.aa
print First().aa
th = Third()
th.show()