問題:
在函數內,is 運算符當比較[-5, 256] 範圍之外的兩個整數位面量時為True,但在函數外部進行比較時為False。為什麼會出現這種不一致的情況?
答案:
tl;dr:
Python解釋器以程式碼區塊為單位執行。功能是單一區塊,而互動式命令是單獨的區塊。每個區塊都包含自己的對象,包括整數。因此,函數內部宣告的整數指向同一個對象,而函數外部宣告的整數則不然。
詳細說明:
函數:
函數:
是檢查物件身份,因此函數中的 a is b 傳回 True,因為 a 和 b 都指向同一個物件。
每個指令都以單獨的程式碼區塊執行。
每個區塊中的文字儲存為單獨的物件。以上是為什麼「is」運算子對於函數內部和外部的非快取整數的行為不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!