我有一个名为cell
的课程:
class cell:
def __init__(self, row, column, state):
self.x = column * 20
self.y = row * 20
self.state = state
我有一个使用嵌套for循环创建的cells
列表:
grid = []
for x in range(20):
for y in range(20):
grid.append(cell(x, y, bool(random.getrandbits(1))))
我可以使用cell()
毫无问题地将单元格附加到此网格。
稍后,我有一个名为CalculateNextGrid()
的子程序,它创建一个单元格列表并将其作为输出返回。
def CalculateNextGrid(grid):
output = []
index = 0
row = 0
column = 0
for cell in grid:
print(grid)
neighbors = CountCells(index, grid, 20)
if cell.state == True:
if neighbors < 2 or neighbors > 3:
output.append(cell(row, column, False))
grid.append(cell(x, y, bool(random.getrandbits(1))))
else:
output.append(cell(row, column, True))
else:
if neighbors == 3:
output.append(cell(row, column, True))
else:
output.append(cell(row, column, False))
row += 1
if row == 20:
row = 0
column += 1
return output
当我使用output.append()将单元格添加到列表中时,python会抛出“单元对象不可调用”错误,尽管它早先在代码中工作。这是为什么?
答案 0 :(得分:3)
下面
channels_first
您使用名称for cell in grid
表示其他内容。在此之后,它不再适用于cell
类。
您应该将您的班级名称cell
大写,以便它不会与单独的Cell
变量冲突。