【发布时间】:2013-08-18 23:54:09
【问题描述】:
我(可能是错误地)认为is 运算符正在进行 id() 比较。
>>> x = 10
>>> y = 10
>>> id(x)
1815480092
>>> id(y)
1815480092
>>> x is y
True
不过,有了val is not None,好像没那么简单。
>>> id(not None)
2001680
>>> id(None)
2053536
>>> val = 10
>>> id(val)
1815480092
>>> val is not None
True
那么,'is' 运算符是做什么的呢?只是我猜想的对象ID比较吗?如果是这样,val is not None 在 Python 中被解释为not (val is None)?
【问题讨论】:
-
是的,
val is not None和not (val is None)是 equivalent。但第一个在 IMO 上更具可读性。