我在让它工作时遇到了一些问题:
# Shortened for brevity
def _coerce_truth(word):
TRUE_VALUES = ('true','1','yes')
FALSE_VALUES = ('false','0','no')
_word = word.lower().strip()
print "t" in _word
if _word in TRUE_VALUES:
return True
elif _word in FALSE_VALUES:
return False
我发现:
In [20]: "foo" is "Foo".lower()
Out[20]: False
In [21]: "foo" is "foo".lower()
Out[21]: False
In [22]: "foo" is "foo"
Out[22]: True
In [23]: "foo" is "foo".lower()
Out[23]: False
为什么是这样?我知道身份不同于平等,但是身份是什么时候形成的?语句 22 应该是False
除非,由于字符串的静态特性,id == eq。在这种情况下,我对声明 23 感到困惑。
请提前解释并感谢。