Возврат lvalue из функции в python

[Извините, я новичок в Python. Хотя это кажется очень простым вопросом, я проявил должную осмотрительность, прежде чем задавать эту аудиторию, пытаясь избежать действительно глупых вопросов].

Я пытаюсь понять правильную идиому для возврата l-значения из функции. Предположим, у меня есть контейнер из 64 объектов, и я хочу иметь возможность вернуть ссылку на эти объекты.

class ChessBoard:
    def __init__(self):
        self.squares = [None for x in range(64)]

    square( row, col ):
        return self.squares(row*8+col)    <---- I'd like this to be l-value

Затем извне класса я хочу:

board = ChessBoard()
board.square(0,0) = Piece( Shapes.ROOK, Colors.White )    <-- I'm getting an error here
board.square(0,1) = Piece( Shapes.BISHOP, Colors.White )
... etc.

Итак, я хотел бы, чтобы функция 'at' возвращала lvalue (что-то вроде ссылки в C++), но я не могу найти ничего похожего на ссылку или указатель на языке. Если бы я сохранял список в каждом квадрате, содержащем одну фигуру, возможно, я мог бы сделать что-то вроде: как я уже сказал, я новичок в этом языке).

Как бы вы подошли к этой структуре данных?

10
задан Sven Marnach 1 April 2012 в 14:38
поделиться