PythonCAPI
C5DX
这个作者很懒,什么都没留下…
展开
-
Python/C API 异常处理
Python/C API 异常处理Python/C API 中的异常处理与Unix系统中的errno 变量类似,每个线程都有一个全局的异常指示器,该指示器只记录最后一次发生的异常。大多数函数都不会在成功执行时清除该指示器,但会在异常发生时及时设置该指示器。大部分函数函数也都会返回一个标志来指示其执行过程中是否发生异常,如果函数的返回类型为指针,则返回NULL时表示有异常发生;若返回类型为整数,翻译 2016-01-08 11:54:31 · 3302 阅读 · 0 评论 -
执行文件或字符串中的Python代码
执行文件或字符串中的Python代码int Py_Main(int argc, wchar_t **argv) 调用python解释器,并将参数传给解释器,注意第二个参数为wchar_t 类型。返回0:解释器正常退出;返回1:解释器由于异常而退出;返回2:argv不是有效的python命令行。# 文件名hello.pyprint("hello world")// 文件名hello.翻译 2016-01-06 23:26:48 · 1267 阅读 · 0 评论 -
Python/C API 3.4 简介
Python/C API 3.4 简介英语水平太次,板砖轻拍!!!1 头文件Python/C API的函数、类型、宏等都定义在头文件Python.h中,所以在使用之前要include此头文件。注意:因为Python会定义一些预处理宏,而在一些系统中这些宏会影响到标准头文件,所以要在include标准头文件之前include此头文件。在Python.h中,所有用户可见的命名定翻译 2016-01-05 23:43:23 · 1056 阅读 · 0 评论 -
Python/C API 实用函数(部分)
1 操作系统Utilityint Py_FdIsInteractive(FILE *fp, const char *filename) 若fp、filename关联的文件是交互式终端,则返回非0值(true),isatty(fileno(fp))。若全局变量Py_InteractiveFlag 为true,该函数在fp为NULL或filename为stdin或“???”的情况下也返回非0(翻译 2016-01-09 00:30:14 · 3518 阅读 · 0 评论 -
Python/C API 抽象对象层(部分)
1 对象int PyObject_HasAttr(PyObject *o, PyObject *attr_name)int PyObject_HasAttr(PyObject *o, const char *attr_name) 若对象o含有属性attr_name则返回1,否则返回0。等价与Python函数hasattr(o, attr_name)。该函数正常不会出问题。PyObject *翻译 2016-01-10 15:43:40 · 1600 阅读 · 0 评论 -
C语言调用Python3实例
Python文件# hello.pyclass Hello: def __init__(self, x): self.a = x def print(self, x=None): print(x)def xprint(): print("hello world")if __name__ == "__main__": xprint(原创 2016-01-12 10:48:55 · 5039 阅读 · 0 评论 -
Python/C API 具体对象层(部分)
1 空对象PyObject *Py_None Python代码中的None对象。Py_RETURN_NONE Properly handle returning Py_None from within a C function。 Python/C API 不能直接处理空对象,所以要检查,可在C代码中用“==”进行比较,也可用PyNone_Check()进行检查。2 数字对象翻译 2016-01-10 21:19:00 · 2322 阅读 · 0 评论 -
Python/C API Unicode对象
Py_UNICODE wchar_t的typedef,是16位还是32位依赖于平台。PyASCIIObjectPyCompactUnicodeObjectPyUnicodeObject PyOjbect的子类型。PyTypeObject PyUnicode_Typeint PyUnicode_Check(PyObject *o) 若对象o是Unicode类型或其子类型,返回true。翻译 2016-01-13 17:49:23 · 1262 阅读 · 0 评论 -
Python/C API中的引用计数修改
Python/C API中的引用计数void Py_INCREF(PyObject *o)void Py_XINCREF(PyObject *0) 增加对象o的引用计数,后者可处理NULL,即若o为NULL,后者不会崩溃,前者则会崩溃。void Py_DECREF(PyObject *o)void Py_XDECREF(PyObject *o) 减小对象o的引用计数,前者不可处理NULL翻译 2016-01-07 23:09:39 · 1032 阅读 · 0 评论