Python如何清理驻留的字符串
- 更新时间:2021-07-19 09:20:45
- 编辑:邓恨蝶
为网友们分享了相关的编程文章,网友慕英卓根据主题投稿了本篇教程内容,涉及到Python相关内容,已被281网友关注,涉猎到的知识点内容可以在下方电子书获得。
参考资料
- python机器学习:Scikit-learn使用手册 PDF 电子书 / 36.8 MB / 机器学习小组 推荐度:
- 写给系统管理员的Python脚本编程指南 PDF 电子书 / 137 MB / 甘尼什·桑吉夫·奈克 推荐度:
- NumPy攻略:Python科学计算与数据分析 PDF 电子书 / 33.6 MB / 伊德里斯 推荐度:
- 自学python教程视频 / 116 KB / 码小辫 推荐度:
- 零基础学Python PDF 电子书 / 314 MB / 明日科技 推荐度:
正文内容
小编给大家总结一篇《Python如何清理驻留的字符串》的技术内容,实例用法很详细,重新编辑了一下发到本站,为了大家阅读方便。
1、说明
清除函数从interneddictionary遍历所有字符串,调整这些对象的引用计数,并将它们标记为NOT_INTERNED,这样垃圾回收就可以了。当所有的字符串都被标记为NOT_INTERNED时,将清空并删除interned字典。
2、清理实例
这个清理函数就是_PyUnicode_ClearInterned,在 unicodeobject.c 中定义。
void _PyUnicode_ClearInterned(PyThreadState *tstate) { ......... // Get all the keys to the interned dictionary PyObject *keys = PyDict_Keys(interned); ......... // Interned Unicode strings are not forcibly deallocated; // rather, we give them their stolen references back // and then clear and DECREF the interned dict. for (Py_ssize_t i = 0; i < n; i++) { PyObject *s = PyList_GET_ITEM(keys, i); ......... switch (PyUnicode_CHECK_INTERNED(s)) { case SSTATE_INTERNED_IMMORTAL: Py_SET_REFCNT(s, Py_REFCNT(s) + 1); break; case SSTATE_INTERNED_MORTAL: // Restore the two references (key and value) ignored // by PyUnicode_InternInPlace(). Py_SET_REFCNT(s, Py_REFCNT(s) + 2); break; case SSTATE_NOT_INTERNED: /* fall through */ default: Py_UNREACHABLE(); } // marking the string to be NOT_INTERNED _PyUnicode_STATE(s).interned = SSTATE_NOT_INTERNED; } // decreasing the reference to the initialized and // access keys object. Py_DECREF(keys); // clearing the dictionary PyDict_Clear(interned); // clearing the object interned Py_CLEAR(interned); }
以上就是Python清理驻留字符串的方法,希望能对大家有所帮助。更多Python学习指路:
相关教程
-
python实现石头剪刀布程序
这篇文章主要为大家详细介绍了python实现石头剪刀布程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-06-03
-
python安装oracle扩展及数据库连接方法
这篇文章主要介绍了python安装oracle扩展及数据库连接方法,较为详细的分析了Python下载oracle扩展及Windows、Linux环境下的安装步骤、操作技巧及注意事项,需要的朋友可以参考下
发布时间:2019-08-26