我的程序中有3个类,我使用超类来从两个基类继承变量。 A类构建包含数字的2个列表,它绘制数字并在其函数中使用。为了索引要绘制的数字的时间和数量,该机制是在B类循环中构建的。迭代次数由变量initX
和algorithmIndex
确定。对于循环的每次迭代,A类从每个ls1
和ls2
绘制一个数字,其索引为ls[initX]
ls[initX]
。 Class New
需要继承class A
和class B
。但是initX
和algorithmIndex
会在Nonetype
处获得class New
。我希望algorithmIndex
和Nonetype
的值可以与class B
中的值相同。我不知道它为什么会发生,这两个变量是否只是从class A
继承而来?对此有什么好的解决方案?
谢谢!
这是我的代码:
ls1 = [1,2,3,4]
ls2 = [3,4,5,6]
algorithmIndex = None
initX = None
class A(object):
def __init__(self, algorithmIndex, initX):
self.algorithmIndex = algorithmIndex
self.x = ls1[initX] #iniX is used as list index, which return a Nonetype in the new class.
self.y = ls2[initX]
self.ls1_history = []
if self. algorithmIndex == 1:
self.x1 = self.x
self.ls1_history.append(self.x1)
else:
pass
class B(object):
def __init__(self, arg):
algorithmIndex = 1
while algorithmIndex < 4:
initX = 0
while initX < 4:
self.q.append(A(algorithmIndex, initX)) #initX needs to be included as an argument in class A.
initX += 1
algorithmIndex += 1
def midpt(self):
i = 0
while i < 4:
mid = self.q[i].ls1_history
i+=1
class New(A,B):
def __init__(self, arg, algorithmIndex, initX):
A.__init__(self, algorithmIndex, initX)
B.__init__(self, arg)
self.initX = A.initX
self.algorithmIndex = A.algorithmIndex
错误:
self.x = ls1[initX]
TypeError: list indices must be integers or slices, not NoneType