91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中字符串駐留的原理是什么

發布時間:2021-04-26 17:27:22 來源:億速云 閱讀:172 作者:Leah 欄目:編程語言

這篇文章給大家介紹Python中字符串駐留的原理是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

python可以做什么

Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。

1、說明

在CPython中,字符串引用由一個名為interned的Python字典存儲、訪問和管理。當第一次調用常駐字符串時,字典被延遲初始化,并保存對所有常駐字符串對象的引用。

2、原理實例

負責常駐字符串的核心函數是PyUnicode_InternInPlace,它是在unicodeobject.c中定義的,調用時會創建一個interned的字典來容納所有常駐字符串,然后在參數中注冊對象,使它們的鍵和值使用相同的對象引用。

以下函數片段顯示了 Python 實現字符串駐留的過程。

  void
  PyUnicode_InternInPlace(PyObject **p)
  {
      PyObject *s = *p;
  
      .........
  
      // Lazily build the dictionary to hold interned Strings
      if (interned == NULL) {
          interned = PyDict_New();
          if (interned == NULL) {
              PyErr_Clear();
              return;
          }
      }
  
      PyObject *t;
  
      // Make an entry to the interned dictionary for the
      // given object
      t = PyDict_SetDefault(interned, s, s);
  
      .........
 
      // The two references in interned dict (key and value) are
      // not counted by refcnt.
      // unicode_dealloc() and _PyUnicode_ClearInterned() take
      // care of this.
      Py_SET_REFCNT(s, Py_REFCNT(s) - 2);
  
      // Set the state of the string to be INTERNED
      _PyUnicode_STATE(s).interned = SSTATE_INTERNED_MORTAL;
  }

關于Python中字符串駐留的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵川县| 盐亭县| 沙坪坝区| 平谷区| 汉阴县| 岐山县| 获嘉县| 民县| 莱州市| 怀集县| 万宁市| 老河口市| 正安县| 休宁县| 隆尧县| 手游| 哈密市| 苗栗县| 建阳市| 饶阳县| 增城市| 喜德县| 克东县| 广饶县| 洪湖市| 团风县| 岳阳县| 蒙山县| 平阴县| 榆树市| 敖汉旗| 阳原县| 屏东县| 潼南县| 广德县| 江山市| 曲沃县| 天峻县| 敦化市| 新宾| 太康县|