iFr*_*cht 8 python equality pylint python-3.x
请考虑以下代码段:
my_string = 'asdf'
print(my_string is 'xfje') #R0123
Run Code Online (Sandbox Code Playgroud)
Pylint R0123
在第二行返回推荐,我在错误消息wiki上找不到.不过,在这部分文档中提到了它:
文字比较(R0123):
与文字的比较在将对象与文字进行比较时使用,这通常是您不想做的事情,因为您可以比较不同于预期的文字.
这个解释对我没有任何帮助.我知道is
用于两个字符串对象之间的比较可能会导致与预期不同的结果,但是为了将对象与文字进行比较,它与之相同==
.使用时==
,错误消失.
我为什么不在is
这里使用?
Mur*_*nik 16
is
检查左手参数是否与右手参数保持完全相同的引用.这对于None
单例是好的,但对于其他类型通常是个坏主意,其中多个实例可以具有相同的逻辑值.
考虑一下,例如以下示例:
>>> my_string = ''.join([c for c in 'xfje'])
>>> print my_string
xfje
>>> print my_string == 'xfje'
True
>>> print my_string is 'xfje'
False
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5763 次 |
最近记录: |