def METHOD_NAME(self, current_row, current_column):
    # Cells either side of current cell
    neighbour_min = -1
    neighbour_max = 2
    neighbours = []
    for row in range(neighbour_min, neighbour_max):
        for column in range(neighbour_min, neighbour_max):
            neighbour_row = current_row + row
            neighbour_column = current_column + column
            # Don't count the current cell
            if not (
                neighbour_row == current_row and neighbour_column == current_column
            ):
                # It's a toroidal world so go all the way round if necessary
                if (neighbour_row) < 0:
                    neighbour_row = self._rows - 1
                elif (neighbour_row) >= self._rows:
                    neighbour_row = 0
                if (neighbour_column) < 0:
                    neighbour_column = self._columns - 1
                elif (neighbour_column) >= self._columns:
                    neighbour_column = 0
                neighbours.append(self._grid[neighbour_row][neighbour_column])
    return neighbours