品易云推流 关闭
文章 > Python基础教程 > python解释器如何实现字典合并

python解释器如何实现字典合并

头像

小妮浅浅

2021-04-14 15:31:24769浏览 · 0收藏 · 0评论

1、说明

实现字典合并生成新字典的逻辑,对应于 | 操作符。

实现字典就地合并逻辑,对应于 |= 操作符。

CPython的实现逻辑与纯Python的实现基本相同,只有引用计数的问题与对象的垃圾回收有关。

2、实例

// 实现字典合并生成新字典的逻辑,对应于 | 操作符
static PyObject *
dict_or(PyObject *self, PyObject *other)
{
    if (!PyDict_Check(self) || !PyDict_Check(other)) {
        Py_RETURN_NOTIMPLEMENTED;
    }
    PyObject *new = PyDict_Copy(self);
    if (new == NULL) {
        return NULL;
    }
    if (dict_update_arg(new, other)) {
        Py_DECREF(new); // 减少引用计数
        return NULL;
    }
    return new;
}
 
// 实现字典就地合并逻辑,对应于 |= 操作符
static PyObject *
dict_ior(PyObject *self, PyObject *other)
{
    if (dict_update_arg(self, other)) {
        return NULL;
    }
    Py_INCREF(self); // 增加引用计数
    return self;
}

以上就是python解释器实现字典合并的方法,希望对大家有所帮助。更多编程基础知识学习:python学习网

关注公众号

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图 底部广告图按钮