我正在尝试创建一个 Matrix 类。但是,当我创建它时它会给我带来错误。我试图删除 self._theGrid.clear(0) 但矩阵将被初始化为 None 而不是 0。from array_ import Array2Dclass Matrix : # Creates a matrix of size numRows x numClos initialized to 0. def __init__(self, numRows, numCols): self._theGrid = Array2D(numRows, numCols) self._theGrid.clear(0) ....在我创建的模块中。我正在使用以下模块来创建矩阵。# Implement the Array ADT using the array capabilities of the ctypes moduleimport ctypesclass Array: # Create array with the size elements def __init__(self, size): assert size > 0, "Array size must be > 0" self._size = size # Create the array structure using ctypes module PyArrayType = ctypes.py_object * size self._elements = PyArrayType() # Initialize each element self.clear(None) # Returns the size of the array def __len__(self): return self._size # Get the contents of the index element def __getitem__(self, index): assert index >= 0 and index < len(self), "Array subscripts out of range" return self._elements[index] # Puts the value in the array element at index position. def __setitem__(self, index, value): assert index >= 0 and index < len(self), "Array subscripts out of range" self._elements[index] = value # Clear the array by setting each element to the given value. def clear (self, value): for i in range(len(self)): self._elements[i] = value # Returns the array's ierator for transversing the elements. def __iter__(self): return _ArrayIterator( self._elements )# An iterator for the Array ADT.class _ArrayIterator: def __init__(self, theArray): self._arrayRef = theArray self._curNdx = 0 def __iter__(self): return self我无法得到所有矩阵条目都初始化为 0 的结果。第 8 行,在init self._theGrid.clear(0)第 77 行,在 clear row.clear(value) 中AttributeError:“矩阵”对象没有属性“清除”我无法用 x = Matrix(2,3) 初始化矩阵。
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
您似乎在这里迭代数组的长度:
...
def clear( self, value ):
for row in range( self.numRows() ): # row is 0, 1, 2, ...
row.clear( value ) # int has no method or attribute with name "clear" -> error is raised
...
尝试遍历数组:
...
def clear( self, value ):
for row in self._theRows:
row.clear( value )
...
添加回答
举报
0/150
提交
取消