我有两个Python对象a
和b
。
最好/最有效/最符合Python风格的方法是什么,可以检查这些对象中恰好有一个是None
?
我有两个Python对象a
和b
。
最好/最有效/最符合Python风格的方法是什么,可以检查这些对象中恰好有一个是None
?
使用Python的^
(异或)运算符。
(a is None) ^ (b is None)
!=
是否更好。是的,对于布尔值,逻辑和按位异或是等效的,但还是... - juanpa.arrivillaga!=
同样适用。 - Bill the Lizard^
时,我会想“这里发生了一些按位操作”,但另一方面,!=
在我的脑海中并不立即表示“异或”。 - juanpa.arrivillaga您需要的是两个对象是否都是None的异或(XOR)函数。以下代码应该适用:
(a is None) ^ (b is None)
关于如何在Python中获取对象的XOR的更详尽答案可以在此处找到:
sum(x is None for x in (a,b)) == 1
这听起来有点过头了 :) - Jean-François Fabre(a is None) != (b is None)
- BarmarTrue == 1
,False == 0
。这是铁板钉钉的事实。 - Jean-François Fabre