使用if foo is None而不是if foo == None测试值是否具体是标准惯例None.
如果你想确定一个值是否正确True(不仅仅是一个真实的值),是否有任何理由使用if foo == True而不是if foo is True?这在CPython(2.x和3.x),Jython,PyPy等实现之间是否有所不同?
示例:say True用作要与值'bar'或任何其他类似真值的值区分开的单例值:
if foo is True: # vs foo == True
...
elif foo == 'bar':
...
Run Code Online (Sandbox Code Playgroud)
是否存在使用if foo is True会产生不同结果的情况if foo == True?
注意:我知道Python布尔值 - 如果x:,则vs x == True,vs如果x为True.但是,它仅解决是否if foo,if foo == True或if foo is True通常应用于确定是否foo具有真实值. …
可能重复:
python:类覆盖"是"行为
我试图覆盖is运算符,以便我可以做类似的事情
if tom is writer:
print 'tom is writing'
elif tom is programmer:
print 'tom is programming'
Run Code Online (Sandbox Code Playgroud)
这在python中可能吗?
我的印象是可能and在Python中重载,但是刚才通过文档阅读,我意识到这__and__是指按位运算&符,而不是逻辑运算符and.
我是否忽略了某些东西,或者是不可能and在Python中重载逻辑?