Я пытаюсь сделать игру жизни Конвея на питоне. По сути, мне нужно составить список grid / 2d и заполнить его значениями. Я зарегистрировал сетку как объект Grid. Указатель на объект является атрибутом объекта Game.
По какой-то причине, когда я пытаюсь запустить метод экземпляра в Grid, python говорит, что «setCell ожидал 3 позиционных аргумента и получил 4». Но я дал только 3. См. Код ниже:
Я подумал, что это может быть проблема с переменной "self", но использование вещи-оболочки "tempgrid" для хранения сетки, похоже, не работает. (Пунктирные линии представляют отдельные файлы)
class Cell:
def __init__(self, xpos, ypos, status):
self.xpos = xpos
self.ypos = ypos
self.status = status
----------------
from .cell import Cell
class Grid:
def __init__(self, size):
self.size = size
self.cells = [[None for _ in range(size)] for _ in range(size)]
def setCell(xpos, ypos, status):
cells[xpos][ypos] = Cell(xpos, ypos, status)
------------------------
from .grid import Grid
class Game:
def __init__(self, size):
self.grid = Grid(size)
for i in range(size):
for j in range(size):
self.grid.setCell(i, j, 0) #python says this is supposed to have 3 arguments but has 4, even though I give 3
Что происходит? Для справки, точное сообщение об ошибке: «TypeError: setCell () принимает 3 позиционных аргумента, но 4 было дано»