中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

贵定县| 安化县| 邹城市| 曲沃县| 闽清县| 铅山县| 松江区| 泗水县| 疏附县| 大厂| 凤山县| 威海市| 富蕴县| 太康县| 郎溪县| 成都市| 安国市| 兰溪市| 咸宁市| 邻水| 皮山县| 鄂伦春自治旗| 邢台市| 潞城市| 泗洪县| 龙南县| 商丘市| 句容市| 林州市| 池州市| 读书| 酒泉市| 南澳县| 磐石市| 通渭县| 冷水江市| 曲水县| 巧家县| 全南县| 诸暨市| 禹州市|