我有Python下的代码:
class Base_class():
def __init__(self):
pass
# this is the method where I need help
def compress(variable?,index?):
somecode()
class Derived_class_1():
def __init__(self,somelist):
self.A = []
self.B = []
for item in somelist:
if item == 1:
self.A.append([1,0])
self.B.append([0,1])
else:
self.A.append([1,0])
self.B.append([1,0])
class Derived_class_2():
def __init__(self,somelist):
self.A = []
self.B = []
for item in somelist:
if item == 1:
self.A.append([1,0])
self.B.append([1,0])
else:
self.A.append([1,0])
self.B.append([0,1])
我需要能够从基类中使用compress方法来访问每个实例值,并基于索引返回一维列表,前提是实例变量对于列表中的每个元素都有两个可能的值。我需要使compress方法成为一类吗?如果是这种情况,我该如何实现呢?
答案 0 :(得分:0)
我看到您的代码有2个问题。
Derrived
类不继承自Base_class
self
从compress
中丢失了更改:
class Base_class():
# ...
def compress(self, variable, index):
print(self.A)
print(self.B)
class Derived_class_1(Base_class):
# ...
class Derived_class_2(Base_class):
# ...
然后测试
>>> x = Derived_class_1([1, 2])
>>> x.compress(5, 6)
[[1, 0], [1, 0]]
[[0, 1], [1, 0]]
>>> y = Derived_class_2([1, 2])
>>> y.compress(5, 6)
[[1, 0], [1, 0]]
[[1, 0], [0, 1]]