標籤:

python intern機制的相關測試

部分參考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 |