理解Python 字串實習
字串實習是一種機制,其中具有相同內容的多個字串共享記憶體中的同一對象。 Python 使用字串駐留來最佳化字串處理並減少記憶體使用。
編譯時字串駐留
前兩個範例示範了編譯時字串駐留。兩個字串(“string”和“strin”“g”)在編譯時都會被評估並轉換為相同的不可變字串物件。這會導致兩個字串等效並佔用相同的記憶體位址。
運行時字串求值
但是,第三個範例涉及運行時字串連接。與編譯時串聯不同,此操作的結果不會自動保留。因此,「s1「g」和「string」佔用不同的記憶體位址,導致比較「s1「g」是「string」回傳False。
控製字串實習
您可以使用 sys.intern() 手動實習字串。透過這樣做,您可以確保您傳遞的字串文字與現有字串值(如果存在)是相同的物件。
實作詳細資訊
字串駐留行為取決於特定的Python實作。 CPython(最常見的 Python 實作)實習編譯時常數,但不實習執行時間表達式的結果。此說明適用於 CPython 3.9.0 及更高版本。
注意: 當使用「is」與字串文字來比較它們是否相等時,Python 3.9 會發出警告。相反,請使用“==”來達到此目的。
以上是Python 是否在編譯時或執行時保留字串,這對比較有何影響?的詳細內容。更多資訊請關注PHP中文網其他相關文章!