我试图在下面的代码中使用ClassB中的self.var1(在ClassA中定义)。我们知道该计划的o / p将是:
ClassB内部:1 2
3
但是当我调用object1.methodA()时,我正在更新self.var1值,当我在它之后调用object2.methodB()时,我想要该值(更新)。怎么实现呢? 我的意思是我想从ClassB访问self.var1的最新值。
class ClassA(object):
def __init__(self):
self.var1 = 1
self.var2 = 2
def methodA(self):
self.var1 = self.var1 + self.var2
return self.var1
class ClassB(ClassA):
def __init__(self, class_a):
self.var1 = class_a.var1
self.var2 = class_a.var2
def methodB(self):
print "Inside ClassB:",self.var1,self.var2
object1 = ClassA()
object2 = ClassB(object1)
sum = object1.methodA()
object2.methodB()
print sum
答案 0 :(得分:1)
在ClassB.__init__()
中,您只是拍摄传入的var1
实例的var2
和ClassA
属性的快照。如果您需要查看这些属性的更新值,请存储实例本身:
class ClassB(ClassA):
def __init__(self, class_a):
self.class_a = class_a
def methodB(self):
print "Inside ClassB:",self.class_a.var1,self.class_a.var2