Đối tượng di động

Các đối tượng "Ô" được sử dụng để triển khai các biến được tham chiếu bởi nhiều phạm vi. Đối với mỗi biến như vậy, một đối tượng ô được tạo để lưu trữ giá trị; các biến cục bộ của mỗi khung ngăn xếp tham chiếu giá trị chứa tham chiếu đến các ô từ phạm vi bên ngoài cũng sử dụng biến đó. Khi giá trị được truy cập, giá trị chứa trong ô sẽ được sử dụng thay vì chính đối tượng ô đó. Việc hủy tham chiếu đối tượng ô này yêu cầu hỗ trợ từ mã byte được tạo; những thứ này không được tự động hủy tham chiếu khi được truy cập. Các đối tượng di động dường như không hữu ích ở nơi khác.

type PyCellObject

Cấu trúc C được sử dụng cho các đối tượng ô.

PyTypeObject PyCell_Type

Đối tượng loại tương ứng với đối tượng ô.

int PyCell_Check(PyObject *ob)

Trả về true nếu ob là một đối tượng ô; ob không được là NULL. Chức năng này luôn thành công.

PyObject *PyCell_New(PyObject *ob)
Giá trị trả về: Tham chiếu mới.

Tạo và trả về một đối tượng ô mới chứa giá trị ob. Tham số có thể là NULL.

PyObject *PyCell_Get(PyObject *cell)
Giá trị trả về: Tham chiếu mới.

Trả về nội dung của ô cell, có thể là NULL. Nếu cell không phải là đối tượng ô, trả về NULL với một bộ ngoại lệ.

PyObject *PyCell_GET(PyObject *cell)
Giá trị trả về: Tham chiếu mượn.

Trả về nội dung của ô cell, nhưng không kiểm tra xem cell có phải không phải là NULL và là đối tượng ô hay không.

int PyCell_Set(PyObject *cell, PyObject *value)

Đặt nội dung của đối tượng ô cell thành value. Điều này giải phóng tham chiếu đến bất kỳ nội dung hiện tại nào của ô. value có thể là NULL. cell phải không phải là NULL.

Nếu thành công, hãy trả về 0. Nếu cell không phải là đối tượng ô, hãy đặt ngoại lệ và trả về -1.

void PyCell_SET(PyObject *cell, PyObject *value)

Đặt giá trị của đối tượng ô cell thành value. Không có số lượng tham chiếu nào được điều chỉnh và không có kiểm tra nào được thực hiện về độ an toàn; cell phải không phải là NULL và phải là đối tượng ô.