Lời nguyền C API¶
curses hiển thị giao diện C nhỏ cho các mô-đun mở rộng. Người tiêu dùng phải bao gồm tệp tiêu đề py_curses.h (không được bao gồm theo mặc định bởi Python.h) và import_curses() phải được gọi, thường là một phần của chức năng khởi tạo mô-đun, để điền vào PyCurses_API.
Cảnh báo
Cả mô-đun C API lẫn mô-đun curses Python thuần túy đều không tương thích với trình thông dịch phụ.
-
import_curses()¶
Nhập lời nguyền C API. Macro không cần dấu chấm phẩy để được gọi.
Khi thành công, hãy điền vào con trỏ
PyCurses_API.Nếu thất bại, hãy đặt
PyCurses_APIthành NULL và đặt ngoại lệ. Người gọi phải kiểm tra xem có xảy ra lỗi quaPyErr_Occurred()hay không:import_curses(); // dấu chấm phẩy là tùy chọn nhưng được khuyến nghị if (PyErr_Occurred()) { /* dọn dẹp */ }
-
void **PyCurses_API¶
Đối tượng được phân bổ động có chứa lời nguyền C API. Biến này chỉ khả dụng khi
import_cursesthành công.PyCurses_API[0]tương ứng vớiPyCursesWindow_Type.PyCurses_API[1],PyCurses_API[2]vàPyCurses_API[3]là các con trỏ tới các hàm vị ngữ thuộc loạiint (*)(void).Khi được gọi, các vị từ này trả về xem
curses.setupterm(),curses.initscr()vàcurses.start_color()có được gọi tương ứng hay không.Xem thêm các macro tiện lợi
PyCursesSetupTermCalled,PyCursesInitialisedvàPyCursesInitialisedColor.Ghi chú
Số lượng mục trong cấu trúc này có thể thay đổi. Hãy cân nhắc sử dụng
PyCurses_API_pointersđể kiểm tra xem có trường mới hay không.
-
PyCurses_API_pointers¶
Số trường có thể truy cập (
4) trongPyCurses_API. Con số này được tăng lên bất cứ khi nào các trường mới được thêm vào.
-
PyTypeObject PyCursesWindow_Type¶
heap type tương ứng với
curses.window.
-
int PyCursesWindow_Check(PyObject *op)¶
Trả về true nếu op là một phiên bản
curses.window, nếu không thì trả về false.
Các macro sau đây là các macro tiện lợi mở rộng thành câu lệnh C. Đặc biệt, chúng chỉ có thể được sử dụng là macro; hoặc macro chứ không thể sử dụng macro() hoặc macro();.
-
PyCursesSetupTermCalled¶
Kiểm tra macro xem
curses.setupterm()đã được gọi chưa.Việc mở rộng vĩ mô gần tương đương với:
{ typedef int (*predicate_t)(void); vị ngữ_t was_setupterm_gọi = (predicate_t)PyCurses_API[1]; nếu (!was_setupterm_gọi()) { trả về NULL; } }
-
PyCursesInitialised¶
Kiểm tra macro xem
curses.initscr()đã được gọi chưa.Việc mở rộng vĩ mô gần tương đương với:
{ typedef int (*predicate_t)(void); vị ngữ_t was_initscr_gọi = (predicate_t)PyCurses_API[2]; nếu (!was_initscr_gọi()) { trả về NULL; } }
-
PyCursesInitialisedColor¶
Kiểm tra macro xem
curses.start_color()đã được gọi chưa.Việc mở rộng vĩ mô gần tương đương với:
{ typedef int (*predicate_t)(void); vị ngữ_t was_start_color_gọi = (predicate_t)PyCurses_API[3]; nếu (!was_start_color_gọi()) { trả về NULL; } }
Dữ liệu nội bộ¶
Các đối tượng sau đây được C API hiển thị nhưng chỉ được coi là nội bộ.
-
PyCurses_CAPSULE_NAME¶
Tên của hộp lời nguyền sẽ được chuyển tới
PyCapsule_Import().Chỉ sử dụng nội bộ. Thay vào đó hãy sử dụng
import_curses.