python intern機制的相關測試
04-26
部分參考Python面試之 is 和 == 的區別,有補充內容
以及
測試結果基本一致 只含大小寫字母、數字和下劃線的會被intern,有一個例外的情況是
當a = a*21 b=a*21 a is b 為 flase,猜想對於a*n 而言 是在20個字元以下觸發intern機制,為了證明想法繼續實驗如下:
總結如下:
對於 str*number 這種類型,分為以下幾種情形
1、number = 1 , 有賦值操作,則當且僅當只含大小寫字母、數字和下劃線的時會觸發intern機制,(沒有長度限制)
2、number = 1 , 沒有賦值操作,相同的str地址相同
3、number > 1 , 當且僅當字元串只含大小寫字母、數字和下劃線,且總長度小於等於20 觸發intern機制。(無論有沒有賦值操作)
另外 小整數對象池和大整數對象池 也是相關內容
推薦閱讀:
※python中 from . import ×××的那個點是表示當前包嗎?
※theano function調試有什麼好方法?
※為什麼不推薦Selenium寫爬蟲
※Stack Overflow 2016年度 20個最佳Python問題(一)
※最常用的十種機器學習演算法(附代碼)
TAG:Python |