理解Python 字串實習
字串實習是一種Python 實作細節,涉及在字串值多次出現時僅創建一個字串值實例在一個程式中。這種優化透過減少用於字串儲存的記憶體來加快程式執行速度。
在 Python 中,編譯時常數字串通常會被保留。因此,您可以直接比較兩個字串文字是否相等:
"string" is "string"
此比較傳回 True,因為這兩個字串文字是同一個物件。
但是,字串駐留不適用到運行時表達式。考慮以下程式碼:
s1 = "strin" s2 = "string" s1 + "g" is s2
您可能期望此表達式的計算結果為 True,因為將「g」新增至「strin」會產生「string」。但是,它傳回 False。這是因為串聯操作不會建立中間字串:
s3a = "strin" s3 = s3a + "g" s3 is "string"
在這種情況下,s3 是一個新的字串對象,與 s3a 和「string」不同。
您可以使用 sys.intern() 函數手動實習字串:
sys.intern(s3) is "string"
這行程式碼強制 Python 建立一個與 s3 具有相同值的實習字串。結果,與「string」的比較回傳 True。
總之,Python 字串駐留適用於編譯時常數。但是,運行時字串操作(例如串聯)不會自動建立內部字串。透過了解此實作細節,您可以透過仔細使用字串駐留來優化程式碼效能。
以上是Python 字串實習如何影響字串比較以及何時應該使用「sys.intern()」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!