在对此问题的评论中,我看到了一条建议使用的声明
result is not None
与
result != None
我想知道两者之间有什么区别,为什么可能要推荐一个而不是另一个?
==是一项 平等测试 。它检查右手侧和左手侧是否相等的对象(根据它们__eq__或__cmp__方法)。
==
__eq__
__cmp__
is是 身份测试 。它检查右侧和左侧是否是同一对象。没有方法调用完成,对象不能影响is操作。
is
您可以将is(和is not)用于单例,例如None,您不关心可能假装为的对象,None或者想要与之进行比较时要防止对象破裂的地方None。
is not
None