我在构造函数中创建了一个名为 env 的嵌套列表,还有另一种填充网格元素的方法,定义如下:
class Environment(object):
def __init__(self,rowCount,columnCount):
env = [[ None for i in range(columnCount)] for j in range(rowCount) ]
return env
def addElement(self, row, column):
self[row][column] = 0
稍后在代码中,我通过运行创建一个 Environment 实例:
myEnv = createEnvironment(6,6)
然后我想通过运行向环境中添加一个元素:
myEnv.addElement(2,2)
所以我期望发生的是,我会收到一个新的 Environment 对象,它是一个 6x6 网格,网格的 2,2 位置为 0。但这没有用。
我有两个错误:
- 我无法从init方法返回 None 以外的任何内容。
我们在尝试执行时遇到的主要问题是
addElement(2, 2)
这个错误:"TypeError: 'Environment' object does not support indexing.
我查看了__getitem__
and__setitem__
方法,但无法让它们处理多维列表。我应该使用更好的数据结构来创建网格吗?