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,便可得到期待的结果:


这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值