- 论坛徽章:
- 13
|
本帖最后由 hmchzb19 于 2014-03-12 10:29 编辑
- #! /usr/bin/env python
- class Array(object):
-
- def __init__(self,capacity,fillValue=None):
- self._items=list()
- for count in xrange(capacity):
- self._items.append(fillValue)
-
- def __len__(self):
- return len(self._items)
-
- def __str__(self):
- return str(self._items)
-
- def __iter__(self):
- return iter(self._items)
-
- def __getitem__(self,index):
- return self._items[index]
-
- def __setitem__(self,index,newItem):
- self._items[index]=newItem
复制代码 在来看Grid.py
- #! /usr/bin/env python
- from Array import Array
- import time
- class Grid(object):
-
- def __init__(self,rows,columns,fillValue=None):
- self._data=Array(rows)
- for row in xrange(rows):
- self._data[row]=Array(columns,fillValue)
-
- def getHeight(self):
- return len(self._data)
-
- def getWidth(self):
- return len(self._data[0])
-
- def __getitem__(self,index):
- return self._data[index]
-
- def __str__(self):
- result=""
- for row in xrange(self.getHeight()):
- for col in xrange(self.getWidth()):
- result+=str(self._data[row][col])+" "
- result=result+"\n"
- return result
-
- matrix=Grid(3,3)
- for row in xrange(matrix.getHeight()):
- for col in xrange(matrix.getWidth()):
- matrix[row][col]=row*col
- print matrix
复制代码 报错如下:
File "./grid.py", line 34, in <module>
matrix=Grid(3,3)
File "./grid.py", line 11, in __init__
self._data[row]=Array(columns,fillValue)
TypeError: 'Array' object does not support item assignment
|
|