API زبان C برای Curses¶
curses یک رابط C کوچک را برای ماژولهای توسعهای در اختیار قرار میدهد. مصرفکنندگان باید پروندهی سرآیند py_curses.h (که بهطور پیشفرض توسط Python.h گنجانده نمیشود) را گنجانده باشند و import_curses() باید، معمولاً بهعنوان بخشی از تابع مقداردهی اولیه ماژول، برای پر کردن PyCurses_API فراخوانی شود.
هشدار
نه API زبان C و نه ماژول curses پایتون خالص با زیرمفسرها سازگار است.
-
import_curses()¶
API سی curses را ایمپورت میکند. این ماکرو برای فراخوانی به نقطهویرگول نیاز ندارد.
در صورت موفقیت، اشارهگر PyCurses_API را پر میکند.
در صورت شکست، مقدار PyCurses_API را برابر NULL قرار دهید و یک استثنا تنظیم کنید. فراخواننده باید از طریق PyErr_Occurred() بررسی کند که آیا خطایی رخ داده است:
import_curses(); // نقطهویرگول اختیاری است اما توصیه میشود
if (PyErr_Occurred()) { /* پاکسازی */ }
-
void **PyCurses_API¶
شیء تخصیصیافته بهطور پویا که API زبان C ماژول curses را در بر دارد. این متغیر تنها پس از موفقیت import_curses در دسترس است.
PyCurses_API[0] متناظر با PyCursesWindow_Type است.
PyCurses_API[1]، PyCurses_API[2] و PyCurses_API[3] اشارهگرهایی به توابع محمول از نوع int (*)(void) هستند.
هنگام فراخوانی، این محمولها به ترتیب برمیگردانند که curses.setupterm()، curses.initscr() و curses.start_color() فراخوانی شدهاند یا نه.
همچنین ماکروهای کمکی PyCursesSetupTermCalled، PyCursesInitialised و PyCursesInitialisedColor را ببینید.
نکته
تعداد ورودیهای این ساختار ممکن است تغییر کند. برای بررسی موجود بودن یا نبودن فیلدهای جدید، استفاده از PyCurses_API_pointers را در نظر بگیرید.
-
PyCurses_API_pointers¶
تعداد فیلدهای دسترسیپذیر (4) در PyCurses_API. این عدد هر زمان که فیلدهای جدیدی افزوده شوند، افزایش مییابد.
-
PyTypeObject PyCursesWindow_Type¶
نوع هیپ متناظر با curses.window.
-
int PyCursesWindow_Check(PyObject *op)¶
اگر op نمونهای از curses.window باشد، مقدار درست و در غیر این صورت مقدار نادرست برمیگرداند.
ماکروهای زیر ماکروهای کمکی هستند که به دستورهای C بسط مییابند. بهطور خاص، این ماکروها را فقط میتوان به شکل macro; یا macro به کار برد، اما نه به شکل macro() یا macro();.
-
PyCursesSetupTermCalled¶
ماکرویی که بررسی میکند آیا curses.setupterm() فراخوانی شده است یا خیر.
بسط ماکرو تقریباً معادل است با:
{
typedef int (*predicate_t)(void);
predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1];
if (!was_setupterm_called()) {
return NULL;
}
}
-
PyCursesInitialised¶
ماکرویی که بررسی میکند آیا curses.initscr() فراخوانی شده است یا خیر.
بسط ماکرو تقریباً معادل است با:
{
typedef int (*predicate_t)(void);
predicate_t was_initscr_called = (predicate_t)PyCurses_API[2];
if (!was_initscr_called()) {
return NULL;
}
}
-
PyCursesInitialisedColor¶
ماکرویی که بررسی میکند آیا curses.start_color() فراخوانی شده است.
بسط ماکرو تقریباً معادل است با:
{
typedef int (*predicate_t)(void);
predicate_t was_start_color_called = (predicate_t)PyCurses_API[3];
if (!was_start_color_called()) {
return NULL;
}
}
دادههای داخلی¶
اشیاء زیر توسط API زبان C ارائه شدهاند، اما باید صرفاً داخلی در نظر گرفته شوند.
-
PyCurses_CAPSULE_NAME¶
نام کپسول curses برای ارسال به PyCapsule_Import().
فقط برای استفادهی داخلی. به جای آن از import_curses استفاده کنید.
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.