您好,登錄后才能下訂單哦!
這篇文章給大家介紹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中字符串駐留的原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。