• 技术文章 >Python技术 >Python基础教程

    Python如何判定字符串被驻留

    小妮浅浅小妮浅浅2021-02-26 15:58:23原创1911

    1、概念

    Python与大多数其他现代编程语言一样,也使用字符串驻留来提高性能。在Python中,我们可以使用is操作符来检查是否两个对象引用了相同的内存对象。

    2、驻留的判定

    如果两个字符串对象引用了相同的内存对象,则is运算符将得出True,否则为False。

      >>> 'python' is 'python'
      True

    我们可以使用这个特定的运算符,来判断哪些字符串是被驻留的。在 CPython 的,字符串驻留是通过以下函数实现的,声明在 unicodeobject.h 中,定义在 unicodeobject.c 中。

    PyAPI_FUNC(void) PyUnicode_InternInPlace(PyObject **);

    为了检查一个字符串是否被驻留,CPython 实现了一个名为PyUnicode_CHECK_INTERNED的宏,同样是定义在 unicodeobject.h 中。

    这个宏表明了 Python 在PyASCIIObject结构中维护着一个名为interned的成员变量,它的值表示相应的字符串是否被驻留。

      #define PyUnicode_CHECK_INTERNED(op) \
          (((PyASCIIObject *)(op))->state.interned)

    以上就是Python判定字符串被驻留的方法,希望能对大家有所帮助。更多Python学习指路:python基础教程

    专题推荐:python字符串驻留
    品易云
    上一篇:Python字符串有哪几种表示形式 下一篇:Python如何清理驻留的字符串

    相关文章推荐

    • python中使用asyncio实现异步IO• python re模块常见使用方法整理• Python和JavaScript的区别分析• Python列表常见操作总结• Python列表两种排序类型的实现• Python字符串有哪几种表示形式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网