>>> if '' is not None:
... print'23333'
...
23333
我认为(不是None)是真的而且('')是假的所以为什么它会运行打印?
答案 0 :(得分:4)
is
和is not
测试对象标识,即测试''
和None
是否是同一个对象,它们不是,所以测试返回{在你的情况下{1}}。
运算符
True
和is
测试对象标识:is not
为真 当且仅当x和y是同一个对象时。x is y
产生了 反向真值。
换句话说,虽然x is not y
和''
具有相同的"truthiness",但如果您执行None
,则它们都会评估为False
或bool(None)
,他们不会引用同一个对象。
答案 1 :(得分:2)
plays = Dict()
player = 'w'
state = Array{Char}(9,9)
...
count = get(plays,(player,state),-1)
是单个运算符,等于is not
的否定。由于is
为false,'' is None
为真。
但是,由于'' is not None
测试身份,而不是相等,is
仍然无法做到你想要的。