Re: [問題] 新手請益
※ 引述《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)
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章