
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;
}
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试



