作者superGA (kid...)
看板Python
标题Re: [问题] 新手请益
时间Thu Mar 19 21:55:18 2009
※ 引述《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)