看板 Python 關於我們 聯絡資訊
※ 引述《justlink (('(oo)'))》之銘言: : ※ 引述《Tiberius (渴望平凡的幸福)》之銘言: : : 這是 "e " 被自動 intern 了,所以兩者是「同一個物件」 : : 這是沒有被 intern 的情形 : : 請參考內建函式 intern() 的說明,一般來說「不要假設字串會被自動 intern」 : : 比對字串內容是否相符的時候,請用 == : 所以如果在採用 is 判斷是否同一個物件的時候, : 要小心是否被intern(),那再請問,如果此時要採用 is 做 reference 的判斷, : 有其他方法麼? : 或者可以採用何者方式,避免自動被intern() ? 用變數裝起來 ex. a = "e " b = "e " print( a is b ) false 這種寫法比較直覺 因為通常reference就是用一個變數去承接 is又是檢查是否為同一物件 因此不容易混淆 print( e is "e " ) 這種寫法 我個人認為比較不pythonic 因為你讓python幫你偷偷做了一些事 你會搞混到底是==還是is 也許python根本不該讓這種語法通過... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.203.55 ※ 編輯: superGA 來自: 140.119.203.55 (03/19 21:56) ※ 編輯: superGA 來自: 140.119.203.55 (03/19 21:57)