Xapp1.latestDataArrays === ApplicationParser.prototype.latestDataArrays // false, as Xapp1.latestDataArrays is L1 now.
Xapp2.latestDataArrays === ApplicationParser.prototype.latestDataArrays // false, as Xapp2.latestDataArrays is L2 now.
有人可以解释一下我如何在我的' C'中的method_b中捕获已安装的值。类方法?
P.S。在这个变种中,我什么都没得到。
答案 0 :(得分:2)
Python不是Java;你不需要setter& getters here:直接访问属性。
您的代码有三个问题。
C.method_c()
没有return
语句,因此返回None
。
您正在使用__
name mangling,而这正是您不想要的。
在A.set_a()
中,您想要设置一个类属性,但是您的赋值会创建一个影响类属性的实例属性。
这是修复后的版本。
class A(object):
_A = 'nothing'
def get_a(self):
return self._A
def set_a(self, value):
A._A = value
class B(A):
def method_b(self, value):
self.set_a(value)
class C(A):
def method_c(self):
return self.get_a()
b = B()
c = C()
print(c.method_c())
b.method_b(13)
print(c.method_c())
<强>输出强>
nothing
13
这是一个稍微更多的Pythonic版本:
class A(object):
_A = 'nothing'
class B(A):
def method_b(self, value):
A._A = value
class C(A):
pass
b = B()
c = C()
print(c._A)
b.method_b(13)
print(c._A)