色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

淺析Python中字符串的intern機制

瀏覽:4日期:2022-07-09 10:46:06

intern機制:

字符串類型作為Python中最常用的數(shù)據(jù)類型之一,Python解釋器為了提高字符串使用的效率和使用性能,做了很多優(yōu)化,例如:Python解釋器中使用了 intern(字符串駐留)的技術(shù)來提高字符串效率,什么是intern機制?即值同樣的字符串對象僅僅會保存一份,放在一個字符串儲蓄池中,是共用的,當然,肯定不能改變,這也決定了字符串必須是不可變對象。

簡單原理:

實現(xiàn) Intern 機制的方式非常簡單,就是通過維護一個字符串儲蓄池,這個池子是一個字典結(jié)構(gòu),如果字符串已經(jīng)存在于池子中就不再去創(chuàng)建新的字符串,直接返回之前創(chuàng)建好的字符串對象,如果之前還沒有加入到該池子中,則先構(gòu)造一個字符串對象,并把這個對象加入到池子中去,方便下一次獲取。

但是,解釋器內(nèi)部對intern 機制的使用策略是有考究的,有些場景會自動使用intern ,有些地方需要通過手動方式才能啟動,看下面幾個常見的小陷阱。

1.在shell中示例,并非全部的字符串都會采用intern機制。僅僅包括下劃線、數(shù)字、字母的字符串才會被intern,當然不能超過20個字符。因為如果超過20個字符的話,解釋器認為這個字符串不常用,不用放入字符串池中。

>>> s1='hello'>>> s2='hello'>>> s1 is s2True# 如果有空格,默認不啟用intern機制>>> s1='hell o'>>> s2='hell o'>>> s1 is s2False# 如果一個字符串長度超過20個字符,不啟動intern機制>>> s1 = 'a' * 20>>> s2 = 'a' * 20>>> s1 is s2True>>> s1 = 'a' * 21>>> s2 = 'a' * 21>>> s1 is s2False>>> s1 = 'ab' * 10>>> s2 = 'ab' * 10>>> s1 is s2True>>> s1 = 'ab' * 11>>> s2 = 'ab' * 11>>> s1 is s2False 2.但是在PyCharm中,只要是同一個字符串不超過20個字符,都為True,并不用是下劃線、數(shù)字、字母的字符串。個人理解:IDE支持的不好。

s1 = 'hell o's2 = 'hell o'print(s1 is s2) # Trues1 = 'hell!*o's2 = 'hell!*o'print(s1 is s2) # Trues1 = 'a' * 20s2 = 'a' * 20print(s1 is s2) # Trues1 = 'a' * 21s2 = 'a' * 21print(s1 is s2) # Falses1 = 'ab' * 10s2 = 'ab' * 10print(s1 is s2) # Trues1 = 'ab' * 11s2 = 'ab' * 11print(s1 is s2) # False 3.字符串拼接時,涉及編譯運行問題

>>> s1 = 'hell'>>> s2 = 'hello'>>> s1 + 'o' is s2False>>> 'hell' + 'o' is s2True>>># 說明shell和IDE在這方面沒有差異s1 = 'hell's2 = 'hello'print(s1 + 'o' is s2) # Falseprint('hell' + 'o' is s2) # True#因為'hell' + 'o'在編譯時已經(jīng)變成了'hello',而s1+'o'因為s1是一個變量,他們會在運行時進行拼接,所以沒有被intern

作者:Nobita Chen出處:http://www.cnblogs.com/chenshengkai/

以上就是淺析Python中字符串的intern機制的詳細內(nèi)容,更多關(guān)于python 字符串的intern機制的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 中国嫩模一级毛片 | 欧美国产在线一区 | 被老外玩爽的中国美女视频 | 久久亚洲欧美成人精品 | 国产精品免费看久久久香蕉 | 综合久久久久久中文字幕 | 日韩精品在线看 | 国产欧美一区二区三区免费看 | 亚洲成人在线视频播放 | 亚洲免费a | 深夜在线观看大尺度 | 黄色毛片国产 | 日韩精品一区二区三区在线观看 | 欧美综合视频在线 | 成人毛片视频免费网站观看 | 在线中文字幕视频 | 殴美一级视频 | 高清韩国a级特黄毛片 | 午夜一级毛片看看 | 韩国毛片视频 | 亚洲网址在线 | 美女一级片视频 | 欧美精品一区二区三区四区 | 亚洲精品午夜一区二区在线观看 | 成人在线免费观看网站 | 国产成人综合一区精品 | 成人免费一级在线播放 | 国产精品爱久久久久久久三级 | 国产欧美日韩在线观看精品 | 看全色黄大色黄大片毛片 | 国产成人精品日本亚洲专 | 欧美日韩一本 | 国产精品三级国语在线看 | 亚洲日本在线看片 | 扒开双腿猛进入喷水免费视频 | 老妇激情毛片 | 天天鲁天天爱天天鲁天天 | 毛片大片| 成人国产亚洲 | 欧美日韩亚洲成色二本道三区 | 国产成人毛片亚洲精品不卡 |