 |
 |
 |
Python/C API ¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë |
 |
 |
 |
4. Îã³°½èÍý
¤³¤Î¾Ï¤ÇÀâÌÀ¤¹¤ë´Ø¿ô¤ò»È¤¦¤È¡¢Python¤ÎÎã³°¤Î½èÍý¤äÁ÷½Ð¤¬¤Ç¤¤ë¤è¤¦¤Ë
¤Ê¤ê¤Þ¤¹¡£Python¤ÎÎã³°½èÍý¤Î´ðËܤò¤¤¤¯¤é¤«Íý²ò¤¹¤ë¤³¤È¤¬ÂçÀڤǤ¹¡£
Îã³°¤ÏUnix errnoÊÑ¿ô¤Ë¤ä¤ä»÷¤¿µ¡Ç½¤ò²Ì¤¿¤·¤Þ¤¹: ȯÀ¸¤·¤¿
Ãæ¤ÇºÇ¤â¿·¤·¤¤¥¨¥é¡¼¤Î(¥¹¥ì¥Ã¥ÉËè¤Î)¥°¥í¡¼¥Ð¥ë¤Ê¥¤¥ó¥¸¥±¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£
¼Â¹Ô¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¤Û¤È¤ó¤É¤Î´Ø¿ô¤¬¤³¤ì¤ò¥¯¥ê¥¢¤·¤Þ¤»¤ó¤¬¡¢¼ºÇÔ¤·¤¿¤È¤¤Ë¤Ï
¥¨¥é¡¼¤Î¸¶°ø¤ò¼¨¤¹¤¿¤á¤ËÀßÄꤷ¤Þ¤¹¡£¤Û¤È¤ó¤É¤Î´Ø¿ô¤Ï¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤â
ÊÖ¤·¡¢Ä̾ï¤Ï´Ø¿ô¤¬¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤ÏNULL¤Ç¤¢¤ê¡¢
´Ø¿ô¤¬À°¿ô¤òÊÖ¤¹¾ì¹ç¤Ï-1
¤Ç¤¹¡£(Îã³°: PyArg_*()´Ø¿ô¤Ï
¼Â¹Ô¤ËÀ®¸ù¤·¤¿¤È¤¤Ë1
¤òÊÖ¤·¡¢¼ºÇÔ¤·¤¿¤È¤¤Ë0
¤òÊÖ¤·¤Þ¤¹).
¤¢¤ë´Ø¿ô¤¬¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤¬¤¤¤¯¤Ä¤«¼ºÇÔ¤·¤¿¤¿¤á¤Ë¡¢¤½¤Î´Ø¿ô¤¬¼ºÇÔ¤·¤Ê¤±¤ì¤Ð
¤Ê¤é¤Ê¤¤¤È¤¡¢°ìÈÌŪ¤Ë¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤òÀßÄꤷ¤Þ¤»¤ó¡£¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤¬
¤¹¤Ç¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£¥¨¥é¡¼¤ò½èÍý¤·¤ÆÎã³°¤ò¥¯¥ê¥¢¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï
(¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤Þ¤¿¤Ï¥á¥â¥ê³ä¤êÅö¤Æ¤Î¤è¤¦¤Ê)¤½¤ì¤¬»ý¤Ä¤É¤ó¤Ê¥ê¥½¡¼¥¹¤â
¼è¤ê½ü¤¤¤¿¸å¤ËÌá¤ë¤«¤Î¤É¤Á¤é¤«°ìÊý¤ò¹Ô¤¦ÀÕǤ¤¬¤¢¤ê¤Þ¤¹¡£¥¨¥é¡¼¤ò½èÍý¤¹¤ë
½àÈ÷¤ò¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ÉáÄ̤˳¤±¤ë¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥¨¥é¡¼¤Î¤¿¤á¤Ë
Ìá¤ë¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¸Æ¤Ó½Ð¤·¸µ¤ËÃΤ餻¤ë¤³¤È¤¬ÂçÀڤǤ¹¡£
¥¨¥é¡¼¤¬½èÍý¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Þ¤¿¤ÏÃúÇ«¤ËÅÁ¤¨¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
Python/C API¤Î¤µ¤é¤Ê¤ë¸Æ¤Ó½Ð¤·¤Ï°Õ¿Þ¤·¤¿Ä̤ê¤Ë¤Ïư¤«¤Ê¤¤²ÄǽÀ¤¬¤¢¤ê¡¢
ÉԲIJò¤Ê·Á¤Ç¼ºÇÔ¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ÏPythonÊÑ¿ôsys.exc_type
, sys.exc_value
¤ª¤è¤Ó
sys.exc_traceback
¤ËÂбþ¤¹¤ë»°¤Ä¤ÎPython¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤«¤é¤Ê¤ê¤Þ¤¹¡£
¤¤¤í¤¤¤í¤ÊÊýË¡¤Ç¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤È¤ä¤ê¤È¤ê¤¹¤ë¤¿¤á¤ËAPI´Ø¿ô¤¬Â¸ºß¤·¤Þ¤¹¡£
³Æ¥¹¥ì¥Ã¥É¤ËÊÌ¡¹¤Î¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬¤¢¤ê¤Þ¤¹¡£
-
sys.stderr
¤ØÉ¸½à¥È¥ì¡¼¥¹¥Ð¥Ã¥¯¤ò¥×¥ê¥ó¥È¤·¡¢¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò
¥¯¥ê¥¢¤·¤Þ¤¹¡£¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤È¤¤Ë¤À¤±¡¢¤³¤Î´Ø¿ô¤ò
¸Æ¤Ó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£(¤½¤ì°Ê³°¤Î¾ì¹ç¡¢Ã×̿Ū¤Ê¥¨¥é¡¼¤ò°ú¤µ¯¤³¤¹¤Ç¤·¤ç¤¦!)
PyObject* PyErr_Occurred( | ) |
-
Ìá¤êÃÍ:
¼Ú¤ê¤¿»²¾È.
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¥Æ¥¹¥È¤·¤Þ¤¹¡£ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
Îã³°¤Î·¿(PyErr_Set*()´Ø¿ô¤Î°ì¤Ä¤¢¤ë¤¤¤Ï
PyErr_Restore()¤Ø¤ÎºÇ¤â¿·¤·¤¤¸Æ¤Ó½Ð¤·¤ËÂФ¹¤ëÂè°ì°ú¿ô)¤òÊÖ¤·¤Þ¤¹¡£
ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤ÏNULL¤òÊÖ¤·¤Þ¤¹¡£¤¢¤Ê¤¿¤ÏÌá¤êÃͤؤλ²¾È¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢
¤½¤ì¤ËPy_DECREF()¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£Ãí°Õ:
Ìá¤êÃͤòÆÃÄê¤ÎÎã³°¤È
Èæ³Ó¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£¤½¤ÎÂå¤ï¤ê¡¢²¼¤Ë¼¨¤¹PyErr_ExceptionMatches()¤ò
»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£(Èæ³Ó¤Ï´Êñ¤Ë¼ºÇÔ¤¹¤ë¤Ç¤·¤ç¤¦¡£¤Ê¤¼¤Ê¤é¡¢Îã³°¤Ï¥¯¥é¥¹¤Ç¤Ï¤Ê¤¯
¥¤¥ó¥¹¥¿¥ó¥¹¤«¤â¤·¤ì¤Ê¤¤¤·¡¢¤¢¤ë¤¤¤Ï¡¢¥¯¥é¥¹Îã³°¤Î¾ì¹ç¤Ï´üÂÔ¤µ¤ì¤ëÎã³°¤Î
¥µ¥Ö¥¯¥é¥¹¤«¤â¤·¤ì¤Ê¤¤¤«¤é¤Ç¤¹¡£)
int PyErr_ExceptionMatches( | PyObject *exc) |
-
"PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)"¤ÈƱ¤¸¡£
Îã³°¤¬¼ÂºÝ¤ËÀßÄꤵ¤ì¤¿¤È¤¤Ë¤À¤±¡¢¤³¤ì¤ò¸Æ¤Ó½Ð¤À¤¹¤Ù¤¤Ç¤¹¡£Îã³°¤¬È¯À¸
¤·¤Æ¤¤¤Ê¤¤¤Ê¤é¤Ð¡¢¥á¥â¥ê¥¢¥¯¥»¥¹°ãÈ¿¤¬µ¯¤¤ë¤Ç¤·¤ç¤¦¡£
int PyErr_GivenExceptionMatches( | PyObject *given, PyObject *exc) |
-
givenÎã³°¤¬exc¤ÎÎã³°¤È°ìÃפ¹¤ë¤Ê¤é¿¿¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤Ïexc¤¬
¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¾ì¹ç¤â¿¿¤òÊÖ¤·¤Þ¤¹¡£¤³¤ì¤Ïgiven¤¬¥µ¥Ö¥¯¥é¥¹¤Î
¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¢¤ë¤È¤¤â¿¿¤òÊÖ¤·¤Þ¤¹¡£exc¤¬¥¿¥×¥ë¤Ê¤é¤Ð¡¢¥¿¥×¥ëÆâ
(¤ÈºÆµ¢Åª¤Ë¥µ¥Ö¥¿¥×¥ëÆâ)¤Î¤¹¤Ù¤Æ¤ÎÎã³°¤¬°ìÃפ¹¤ë¤«Ä´¤Ù¤é¤ì¤Þ¤¹¡£
given¤¬NULL¤Ê¤é¤Ð¡¢¥á¥â¥ê¥¢¥¯¥»¥¹°ãÈ¿¤¬µ¯¤¤ë¤Ç¤·¤ç¤¦¡£
void PyErr_NormalizeException( | PyObject**exc, PyObject**val, PyObject**tb) |
-
¤¢¤ë¾õ¶·¤Ç¤Ï¡¢°Ê²¼¤ÎPyErr_Fetch()¤¬ÊÖ¤¹ÃͤÏ
``Àµµ¬²½¤µ¤ì¤Æ¤¤¤Ê¤¤''²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢
*exc
¤Ï
¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤À¤¬*val
¤ÏƱ¤¸¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤Ï
¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£¤³¤Î´Ø¿ô¤Ï¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤½¤Î¥¯¥é¥¹¤ò¥¤¥ó¥¹¥¿¥ó¥¹²½
¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£¤½¤ÎÃͤ¬¤¹¤Ç¤ËÀµµ¬²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï²¿¤âµ¯¤¤Þ¤»¤ó¡£
ÃÙ±äÀµµ¬²½¤Ï¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò²þÁ±¤¹¤ë¤¿¤á¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
-
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò¥¯¥ê¥¢¤·¤Þ¤¹¡£¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤Ê¤é¤Ð¡¢
¸ú²Ì¤Ï¤¢¤ê¤Þ¤»¤ó¡£
void PyErr_Fetch( | PyObject **ptype, PyObject **pvalue,
PyObject **ptraceback) |
-
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò¥¢¥É¥ì¥¹¤òÅϤ¹»°¤Ä¤ÎÊÑ¿ô¤ÎÃæ¤Ø¼è¤ê½Ð¤·¤Þ¤¹¡£
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢»°¤Ä¤¹¤Ù¤Æ¤ÎÊÑ¿ô¤òNULL¤Ë
ÀßÄꤷ¤Þ¤¹¡£¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¥¯¥ê¥¢¤µ¤ì¡¢
¤¢¤Ê¤¿¤Ï¼è¤ê½Ð¤µ¤ì¤¿¤½¤ì¤¾¤ì¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
·¿¥ª¥Ö¥¸¥§¥¯¥È¤¬NULL¤Ç¤Ê¤¤¤È¤¤Ç¤µ¤¨¡¢¤½¤ÎÃͤȥȥ졼¥¹¥Ð¥Ã¥¯¥ª¥Ö¥¸¥§¥¯¥È¤Ï
NULL¤«¤â¤·¤ì¤Þ¤»¤ó¡£Ãí°Õ:
Ä̾¤³¤Î´Ø¿ô¤ÏÎã³°¤ò°·¤¦É¬ÍפΤ¢¤ë¥³¡¼¥É
¤¢¤ë¤¤¤Ï¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò°ì»þŪ¤ËÊݸ¤·¤Æ¸µ¤ËÌ᤹ɬÍפΤ¢¤ë¥³¡¼¥É¤Ë
¤è¤Ã¤Æ¤Î¤ß»ÈÍѤµ¤ì¤Þ¤¹¡£
void PyErr_Restore( | PyObject *type, PyObject *value,
PyObject *traceback) |
-
»°¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤òÀßÄꤷ¤Þ¤¹¡£¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬
¤¹¤Ç¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ºÇ½é¤Ë¥¯¥ê¥¢¤µ¤ì¤Þ¤¹¡£¥ª¥Ö¥¸¥§¥¯¥È¤¬NULL¤Ê¤é¤Ð¡¢
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬¥¯¥ê¥¢¤µ¤ì¤Þ¤¹¡£NULL¤Îtype¤ÈÈóNULL¤Îvalue¤¢¤ë¤¤¤Ï
traceback¤òÅϤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Îã³°¤Î·¿(type)¤Ï¥¯¥é¥¹¤Ç¤¢¤ë¤Ù¤¤Ç¤¹¡£
̵¸ú¤ÊÎã³°¤Î·¿(type)¤¢¤ë¤¤¤ÏÃÍ(value)¤òÅϤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
(¤³¤ì¤é¤Îµ¬Â§¤òÇˤë¤È¸å¤Çµ¤ÉÕ¤¤Ë¤¯¤¤ÌäÂê¤Î¸¶°ø¤È¤Ê¤ë¤Ç¤·¤ç¤¦¡£)
¤³¤Î¸Æ¤Ó½Ð¤·¤Ï¤½¤ì¤¾¤ì¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤ò¼è¤ê½ü¤¤Þ¤¹: ¤¢¤Ê¤¿¤Ï
¸Æ¤Ó½Ð¤·¤ÎÁ°¤Ë¤½¤ì¤¾¤ì¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ç¤¢¤ê¡¢
¤Þ¤¿¸Æ¤Ó½Ð¤·¤Î¸å¤Ë¤Ï¤â¤Ï¤ä¤³¤ì¤é¤Î»²¾È¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
(¤³¤ì¤òÍý²ò¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Ãí°Õ¤·¤Æ¤ª¤¤Þ¤¹¡£)
Ãí°Õ:
Ä̾盧¤Î´Ø¿ô¤Ï¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò°ì»þŪ¤ËÊݸ¤·¸µ¤ËÌ᤹ɬÍפΤ¢¤ë
¥³¡¼¥É¤Ë¤è¤Ã¤Æ¤Î¤ß¤Ë»È¤ï¤ì¤Þ¤¹¡£¸½ºß¤ÎÎã³°¾õÂÖ¤òÊݸ¤¹¤ë¤¿¤á¤Ë¤Ï
PyErr_Fetch()¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
void PyErr_SetString( | PyObject *type, char *message) |
-
¤³¤ì¤Ï¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤òÀßÄꤹ¤ë¤¿¤á¤ÎºÇ¤â°ìÈÌŪ¤ÊÊýË¡¤Ç¤¹¡£Âè°ì°ú¿ô¤Ï
Îã³°¤Î·¿¤ò»ØÄꤷ¤Þ¤¹¡£Ä̾ï¤Ïɸ½àÎã³°¤Î°ì¤Ä¡¢Î㤨¤ÐPyExc_RuntimeError¤Ç¤¹¡£
¤½¤Î»²¾È¥«¥¦¥ó¥È¤òÁý²Ã¤µ¤»¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ÂèÆó°ú¿ô¤Ï¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ç¡¢
ʸ»úÎ󥪥֥¸¥§¥¯¥È¤ØÊÑ´¹¤µ¤ì¤Þ¤¹¡£
void PyErr_SetObject( | PyObject *type, PyObject *value) |
-
¤³¤Î´Ø¿ô¤ÏPyErr_SetString()¤Ë»÷¤Æ¤¤¤Þ¤¹¤¬¡¢
Îã³°¤Î``ÃÍ(value)''¤È¤·¤ÆÇ¤°Õ¤ÎPython¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
PyObject* PyErr_Format( | PyObject *exception,
const char *format, ...) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
¤³¤Î´Ø¿ô¤Ï¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤òÀßÄꤷNULL¤òÊÖ¤·¤Þ¤¹¡£
exception¤ÏPythonÎã³°(¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤Ï¤Ê¤¯¥¯¥é¥¹)¤Ç¤¢¤ë¤Ù¤¤Ç¤¹¡£
format¤Ïʸ»úÎó¤Ç¤¢¤ë¤Ù¤¤Ç¤¢¤ê¡¢printf()¤Ë»÷¤¿
½ñ¼°²½¥³¡¼¥É¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£½ñ¼°²½¥³¡¼¥É¤ÎÁ°¤ÎÉý.ÀºÅÙ(width.precision)
¤Ï
²òÀϤµ¤ì¤Þ¤¹¤¬¡¢Éý¤ÎÉôʬ¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£
c |
ʸ»ú¡¢int°ú¿ô¤È¤·¤Æ |
d |
10¿Ê¿ô¡¢int°ú¿ô¤È¤·¤Æ |
x |
16¿Ê¿ô¡¢int°ú¿ô¤È¤·¤Æ |
s |
ʸ»úÎó¡¢char *°ú¿ô¤È¤·¤Æ |
p |
16¿ÊË¡¤Î¥Ý¥¤¥ó¥¿¡¢void *°ú¿ô¤È¤·¤Æ |
ǧ¼±¤Ç¤¤Ê¤¤½ñ¼°²½Ê¸»ú¤¬¤¢¤ë¤È½ñ¼°²½Ê¸»úÎó¤Î»Ä¤ê¤¹¤Ù¤Æ¤¬¤½¤Î¤Þ¤Þ
·ë²Ì¤Îʸ»úÎ󤨥³¥Ô¡¼¤µ¤ì¡¢Í¾Ê¬¤Î°ú¿ô¤Ï¤É¤ì¤â¼Î¤Æ¤é¤ì¤Þ¤¹¡£
void PyErr_SetNone( | PyObject *type) |
-
¤³¤ì¤Ï"PyErr_SetObject(type, Py_None)"¤ò¾Êά¤·¤¿¤â¤Î¤Ç¤¹¡£
-
¤³¤ì¤Ï"PyErr_SetString(PyExc_TypeError, message)"¤ò¾Êά¤·¤¿¤â¤Î¤Ç¡¢
¤³¤³¤Çmessage¤ÏÁȤ߹þ¤ßÁàºî¤¬ÉÔÀµ¤Ê°ú¿ô¤Ç¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤¤¤¦¤³¤È¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£
¼ç¤ËÆâÉô¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£
PyObject* PyErr_NoMemory( | ) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
¤³¤ì¤Ï"PyErr_SetNone(PyExc_MemoryError)"¤ò¾Êά¤·¤¿¤â¤Î¤Ç¡¢
NULL¤òÊÖ¤·¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢¥á¥â¥êÉÔ¤ˤʤ俤Ȥ¡¢
¥ª¥Ö¥¸¥§¥¯¥È³ä¤êÅö¤Æ´Ø¿ô¤Ï"return PyErr_NoMemory();"¤È
½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
PyObject* PyErr_SetFromErrno( | PyObject *type) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
C¥é¥¤¥Ö¥é¥ê´Ø¿ô¤¬¥¨¥é¡¼¤òÊÖ¤·¤ÆCÊÑ¿ôerrno¤òÀßÄꤷ¤¿¤È¤¤Ë¡¢
¤³¤ì¤ÏÎã³°¤òȯÀ¸¤µ¤»¤ë¤¿¤á¤ËÊØÍø¤Ê´Ø¿ô¤Ç¤¹¡£Âè°ìÍ×ÁǤ¬
À°¿ôerrnoÃͤǡ¢ÂèÆóÍ×ÁǤ¬
(strerror()«¤éÆÀ¤é¤ì¤ë)Âбþ¤¹¤ë
¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤ë¥¿¥×¥ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¹½À®¤·¤Þ¤¹¡£¤½¤ì¤«¤é¡¢
"PyErr_SetObject(type, object)"¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
Unix¤Ç¤Ï¡¢errnoÃͤ¬EINTR¤Ç¤¢¤ë¤È¤¡¢¤¹¤Ê¤ï¤Á
³ä¤ê¹þ¤Þ¤ì¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤òɽ¤·¤Æ¤¤¤ë¤È¤¡¢¤³¤ì¤Ï
PyErr_CheckSignals()¤ò¸Æ¤Ó½Ð¤·¡¢¤½¤ì¤¬¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤ò
ÀßÄꤷ¤¿¾ì¹ç¤ÏÀßÄꤵ¤ì¤¿¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤Þ¤¹¡£´Ø¿ô¤Ï¾ï¤ËNULL¤òÊÖ¤·¤Þ¤¹¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¥¨¥é¡¼¤òÊÖ¤·¤¿¤È¤¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î
¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï"return PyErr_SetFromErrno(type);"¤È
½ñ¤¯¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
PyObject* PyErr_SetFromErrnoWithFilename( | PyObject *type,
char *filename) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
PyErr_SetFromErrno()¤Ë»÷¤Æ¤¤¤Æ¡¢filename¤¬NULL¤Ç¤Ê¤¤¾ì¹ç¤Ë¡¢
¤½¤ì¤¬type¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ËÂè»°°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¤È¤¤¤¦¤Õ¤ë¤Þ¤¤¤¬ÄɲÃ
¤µ¤ì¤Æ¤¤¤Þ¤¹¡£IOError¤ÈOSError¤Î¤è¤¦¤ÊÎã³°¤Î¾ì¹ç¤Ç¤Ï¡¢
¤³¤ì¤¬Îã³°¥¤¥ó¥¹¥¿¥ó¥¹¤Îfilename°À¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£
PyObject* PyErr_SetFromWindowsErr( | int ierr) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
¤³¤ì¤ÏWindowsError¤òȯÀ¸¤µ¤»¤ë¤¿¤á¤ËÊØÍø¤Ê´Ø¿ô¤Ç¤¹¡£
0¤Îierr¤È¤È¤â¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢GetLastError()¤¬
ÊÖ¤¹¥¨¥é¡¼¥³¡¼¥É¤¬Âå¤ê¤Ë»È¤ï¤ì¤Þ¤¹¡£ierr¤¢¤ë¤¤¤Ï
GetLastError()¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤ë¥¨¥é¡¼¥³¡¼¥É¤ÎWindowsÍѤÎÀâÌÀ¤ò
¼è¤ê½Ð¤¹¤¿¤á¤Ë¡¢Win32´Ø¿ôFormatMessage()¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤½¤ì¤«¤é¡¢
Âè°ìÍ×ÁǤ¬ierrÃͤÇÂèÆóÍ×ÁǤ¬(FormatMessage()¤«¤éÆÀ¤é¤ì¤ë)
Âбþ¤¹¤ë¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ç¤¢¤ë¥¿¥×¥ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¹½À®¤·¤Þ¤¹¡£¤½¤·¤Æ¡¢
"PyErr_SetObject(PyExc_WindowsError, object)"¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï¾ï¤ËNULL¤òÊÖ¤·¤Þ¤¹¡£
ÍøÍѲÄǽÈϰÏ: Windows¡£
PyObject* PyErr_SetExcFromWindowsErr( | PyObject *type,
int ierr) |
-
PyErr_SetFromWindowsErr()¤Ë»÷¤Æ¤¤¤Æ¡¢Á÷½Ð¤¹¤ëÎã³°¤Î·¿¤ò
»ØÄꤹ¤ë°ú¿ô¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£
ÍøÍѲÄǽÈϰÏ: Windows¡£
¥Ð¡¼¥¸¥ç¥ó2.3 °Ê¹ß¤Ç¿·µ¬Äɲ䵤줿 »ÅÍͤǤ¹¡£
PyObject* PyErr_SetFromWindowsErrWithFilename( | int ierr,
char *filename) |
-
Ìá¤êÃÍ:
¾ï¤Ë NULL.
PyErr_SetFromWindowsErr()¤Ë»÷¤Æ¤¤¤Æ¡¢filename¤¬NULL¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï
WindowsError¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ØÂè»°°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤ë¤È¤¤¤¦¿¶¤ëÉñ¤¤¤¬
Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£
ÍøÍѲÄǽÈϰÏ: Windows¡£
PyObject* PyErr_SetExcFromWindowsErrWithFilename( | PyObject *type, int ierr, char *filename) |
-
PyErr_SetFromWindowsErrWithFilename()¤Ë»÷¤Æ¤¤¤Æ¡¢
ȯÀ¸¤µ¤»¤ëÎã³°¤Î·¿¤ò»ØÄꤹ¤ë°ú¿ô¤¬Äɲäµ¤ì¤Æ¤¤¤Þ¤¹¡£
ÍøÍѲÄǽÈϰÏ: Windows¡£
¥Ð¡¼¥¸¥ç¥ó2.3 °Ê¹ß¤Ç¿·µ¬Äɲ䵤줿 »ÅÍͤǤ¹¡£
void PyErr_BadInternalCall( | ) |
-
"PyErr_SetString(PyExc_TypeError, message)"¤ò¾Êά¤·¤¿¤â¤Î¤Ç¤¹¡£
¤³¤³¤Çmessage¤ÏÆâÉôÁàºî(Î㤨¤Ð¡¢Python/C API´Ø¿ô)¤¬ÉÔÀµ¤Ê°ú¿ô¤È
¤È¤â¤Ë¸Æ¤Ó½Ð¤µ¤ì¤¿¤È¤¤¤¦¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¼ç¤ËÆâÉô¤Ç»ÈÍѤ¹¤ë¤¿¤á¤Î¤â¤Î
¤Ç¤¹¡£
int PyErr_Warn( | PyObject *category, char *message) |
-
·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Þ¤¹¡£category°ú¿ô¤Ï·Ù¹ð¥«¥Æ¥´¥ê(°Ê²¼¤ò»²¾È)
¤«¤Þ¤¿¤ÏNULL¤Ç¡¢message°ú¿ô¤Ï¥á¥Ã¥»¡¼¥¸Ê¸»úÎó¤Ç¤¹¡£
¤³¤Î´Ø¿ô¤ÏÄ̾ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òsys.stderr¤Ø¥×¥ê¥ó¥È¤·¤Þ¤¹¡£
¤±¤ì¤É¤â¡¢¥æ¡¼¥¶¤¬·Ù¹ð¤ò¥¨¥é¡¼¤ØÊѹ¹¤¹¤ë¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£
¤½¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢¤³¤ì¤ÏÎã³°¤òȯÀ¸¤µ¤»¤Þ¤¹¡£·Ù¹ðµ¡¹½¤¬¤â¤ÄÌäÂê¤Î¤¿¤á¤Ë
¤½¤Î´Ø¿ô¤¬Îã³°¤òȯÀ¸¤µ¤»¤ë¤È¤¤¤¦¤³¤È¤â²Äǽ¤Ç¤¹¡£(¼ÂÁõ¤Ç¤Ï¤½¤ÎÌñ²ð¤Ê»Å»ö¤ò
¹Ô¤¦¤¿¤á¤Ëwarnings¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹)¡£
Îã³°¤¬È¯À¸¤µ¤»¤é¤ì¤Ê¤±¤ì¤Ð¡¢Ìá¤êÃͤÏ0
¤Ç¤¹¡£¤¢¤ë¤¤¤Ï¡¢Îã³°¤¬È¯À¸¤µ¤»
¤é¤ì¤ë¤È-1
¤Ç¤¹¡£(·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬¼ÂºÝ¤Ë¥×¥ê¥ó¥È¤µ¤ì¤ë¤«¤É¤¦¤«¤ò·èÄê
¤¹¤ë¤³¤È¤Ï¤Ç¤¤º¡¢¤Þ¤¿²¿¤¬¤½¤ÎÎã³°¤Î¸¶°ø¤Ê¤Î¤«¤ò·èÄꤹ¤ë¤³¤È¤â¤Ç¤¤Ê¤¤¡£
¤³¤ì¤Ï°Õ¿ÞŪ¤Ê¤â¤Î¤Ç¤¹¡£)Îã³°¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤ÏÄ̾ï¤ÎÎã³°½èÍý¤ò
¹Ô¤¤¤Þ¤¹(Î㤨¤Ð¡¢Py_DECREF()¤Ï»²¾È¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¥¨¥é¡¼Ãͤò
ÊÖ¤·¤Þ¤¹)¡£
·Ù¹ð¥«¥Æ¥´¥ê¤ÏWarning¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¥Ç¥Õ¥©¥ë¥È·Ù¹ð¥«¥Æ¥´¥ê¤ÏRuntimeWarning¤Ç¤¹¡£
ɸ½àPython·Ù¹ð¥«¥Æ¥´¥ê¤Ï"PyExc_"¤ËPythonÎ㳰̾¤¬Â³¤¯Ì¾Á°¤Î
¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÍѤ¤¤ÆÊѹ¹¤Ç¤¤Þ¤¹¡£¤³¤ì¤é¤Ï·¿PyObject*¤ò
»ý¤Á¡¢¤¹¤Ù¤Æ¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£¤½¤ì¤é¤Î̾Á°¤Ï
PyExc_Warning, PyExc_UserWarning,
PyExc_DeprecationWarning, PyExc_SyntaxWarning,
PyExc_RuntimeWarning¤ª¤è¤ÓPyExc_FutureWarning¤Ç¤¹¡£
PyExc_Warning¤ÏPyExc_Exception¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¹¡£
¤½¤Î¾¤Î·Ù¹ð¥«¥Æ¥´¥ê¤ÏPyExc_Warning¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¹¡£
·Ù¹ð¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤¿¤á¤Î¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢warnings¥â¥¸¥å¡¼¥ë¤Î
¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤È¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤Î
-W¥ª¥×¥·¥ç¥ó¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
·Ù¹ð¥³¥ó¥È¥í¡¼¥ë¤Î¤¿¤á¤ÎC API¤Ï¤¢¤ê¤Þ¤»¤ó¡£
int PyErr_WarnExplicit( | PyObject *category, char *message,
char *filename, int lineno, char *module, PyObject *registry) |
-
¤¹¤Ù¤Æ¤Î·Ù¹ð¤Î°À¤òÌÀ¼¨Åª¤ËÀ©¸æ¤·¤¿·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò½Ð¤·¤Þ¤¹¡£
¤³¤ì¤ÏPython´Ø¿ôwarnings.warn_explicit()¤ÎľÀÜŪ¤Ê¥é¥Ã¥Ñ¤Ç¡¢
¤µ¤é¤Ë¾ðÊó¤òÆÀ¤ë¤Ë¤Ï¤½¤Á¤é¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤½¤³¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë¥Ç¥Õ¥©¥ë¥È¤Î
¸ú²Ì¤òÆÀ¤ë¤¿¤á¤Ë¡¢module¤Èregistry°ú¿ô¤ÏNULL¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
-
¤³¤Î´Ø¿ô¤ÏPython¤Î¥·¥°¥Ê¥ë½èÍý¤È¤ä¤ê¤È¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥·¥°¥Ê¥ë¤¬¤½¤Î¥×¥í¥»¥¹¤ØÁ÷¤é¤ì¤¿¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤·¡¢¤½¤¦¤Ê¤é¤ÐÂбþ¤¹¤ë
¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£
signal⥸¥å¡¼¥ë¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
¤³¤ì¤ÏPython¤Ç½ñ¤«¤ì¤¿¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤ò¸Æ¤Ó½Ð¤»¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¾ì¹ç¤Ç¡¢
SIGINTΥǥե©¥ë¥È¤Î¸ú²Ì¤Ï
KeyboardInterruptÎã³°¤òȯÀ¸¤µ¤»¤ë¤³¤È¤Ç¤¹¡£Îã³°¤¬È¯À¸¤·¤¿¾ì¹ç¡¢
¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬ÀßÄꤵ¤ì¡¢´Ø¿ô¤Ï
1
¤òÊÖ¤·¤Þ¤¹¡£
¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¡¢´Ø¿ô¤Ï0
¤òÊÖ¤·¤Þ¤¹¡£¥¨¥é¡¼¥¤¥ó¥¸¥±¡¼¥¿¤¬°ÊÁ°¤Ë
ÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤½¤ì¤¬¥¯¥ê¥¢¤µ¤ì¤ë¤«¤É¤¦¤«¤ï¤«¤é¤Ê¤¤¡£
void PyErr_SetInterrupt( | ) |
-
¤³¤Î´Ø¿ô¤ÏÇѻߤµ¤ì¤Æ¤¤¤Þ¤¹¡£SIGINT·¥°¥Ê¥ë¤¬
Åþ㤷¤¿±Æ¶Á¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Þ¤¹ -- ¼¡¤Ë
PyErr_CheckSignals()¤¬¸Æ¤Ð¤ì¤ë¤È¤¡¢
KeyboardInterrupt¤ÏÁ÷½Ð¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£¥¤¥ó¥¿¥×¥ê¥¿¥í¥Ã¥¯¤ò
ÊÝ»ý¤¹¤ë¤³¤È¤Ê¤¯¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
PyObject* PyErr_NewException( | char *name,
PyObject *base,
PyObject *dict) |
-
Ìá¤êÃÍ:
¿·¤¿¤Ê»²¾È.
¤³¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô¤Ï¿·¤·¤¤Îã³°¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤ÆÊÖ¤·¤Þ¤¹¡£
name°ú¿ô¤Ï¿·¤·¤¤Îã³°¤Î̾Á°¡¢module.class
·Á¼°¤Î
Cʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
base¤Èdict°ú¿ô¤ÏÄ̾ïNULL¤Ç¤¹¡£¤³¤ì¤Ï¤¹¤Ù¤Æ¤ÎÎã³°¤Î¤¿¤á¤Î¥ë¡¼¥È¡¢
ÁȤ߹þ¤ß̾Exception(C¤Ç¤ÏPyExc_Exception¤È¤·¤Æ¥¢¥¯¥»¥¹²Äǽ)
¤«¤éƳ½Ð¤µ¤ì¤¿¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
¿·¤·¤¤¥¯¥é¥¹¤Î__module__°À¤Ïname°ú¿ô¤ÎÁ°È¾Éôʬ(ºÇ¸å¤Î¥É¥Ã¥È¤Þ¤Ç)¤Ë
ÀßÄꤵ¤ì¡¢¥¯¥é¥¹Ì¾¤Ï¸åȾÉôʬ(ºÇ¸å¤Î¥É¥Ã¥È¤Î¸å)¤ËÀßÄꤵ¤ì¤Þ¤¹¡£
base°ú¿ô¤ÏÂå¤ï¤ê¤Î¥Ù¡¼¥¹¥¯¥é¥¹¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¨¤Þ¤¹¡£
dict°ú¿ô¤Ï¥¯¥é¥¹ÊÑ¿ô¤È¥á¥½¥Ã¥É¤Î¼½ñ¤ò»ØÄꤹ¤ë¤¿¤á¤Ë»È¤¨¤Þ¤¹¡£
void PyErr_WriteUnraisable( | PyObject *obj) |
-
Îã³°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤¬¥¤¥ó¥¿¥×¥ê¥¿¤¬¼ÂºÝ¤ËÎã³°¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤È¤¤Ë¡¢
¤³¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô¤Ï·Ù¹ð¥á¥Ã¥»¡¼¥¸¤ò
sys.stderr
¤Ø¥×¥ê¥ó¥È¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢Îã³°¤¬__del__()¥á¥½¥Ã¥É¤ÇȯÀ¸¤·¤¿¤È¤¤Ë»È¤ï¤ì¤Þ¤¹¡£
ȯÀ¸¤µ¤»¤é¤ì¤Ê¤¤Îã³°¤¬À¸¤¸¤¿¥³¥ó¥Æ¥¥¹¥È¤òÆÃÄꤹ¤ë¤¿¤á¤Î°ì¤Ä¤Î°ú¿ôobj¤È¤È¤â¤Ë
´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£obj¤Îrepr¤¬·Ù¹ð¥á¥Ã¥»¡¼¥¸¤Ë¥×¥ê¥ó¥È¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£
 |
 |
 |
Python/C API ¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë |
 |
 |
 |
Release 2.3.3, documentation updated on December 19, 2003.
¤´°Õ¸«¤ä¤´»ØÅ¦¤ò¤ª´ó¤»¤Ë¤Ê¤ê¤¿¤¤Êý¤Ï¡¢ ¤³¤Î¥É¥¥å¥á¥ó¥È¤Ë¤Ä¤¤¤Æ... ¤ò¤´Í÷¤¯¤À¤µ¤¤¡£