Python 源码剖析(二)—— 第一次修改 Python 源代码

对于输出信息,使用 printf 最为简单。但是 printf 要输出 Python 中的某个对象却不是那么方便,幸好 Python 的 C API 提供了一个输出对象的接口:

  • object.h(在 pythoncore ⇒ Include)

    PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
                // 将 PyObject 打印到指定的文件流中
  • intobject.h(pythoncore ⇒ Objects)

    static int
    int_print(PyIntObject *v, FILE *fp, int flags);
                    // 在命令行界面中 
                    // print 100 时会调用的底层函数

    在该函数的开头添加如下代码:

    PyObject* str = PyString_FromString("I am in int_print.");
    PyObject_Print(str, stdout, 0);
    printf("\n");

此时,重新编译 python 解决方案,会得到新的 python27_d.dll,双击 python_d.exe,便可得到期待的结果:


Python 源码剖析(二)—— 第一次修改 Python 源代码_第1张图片

你可能感兴趣的:(Python 源码剖析(二)—— 第一次修改 Python 源代码)