Python中的管道字符

Python中的管道字符,python,pipe,bitwise-operators,Python,Pipe,Bitwise Operators,我看到函数调用中使用了一个“管道”字符(|): res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx) 管道在ax | bx中的含义是什么?它是一个按位或整数。例如,如果ax或bx中的一个或两个1,则计算结果为1,否则计算结果为0。它也适用于其他整数,例如15 | 128=143,即二进制的00001111 | 10000000=10001111。它是位or Python中所有运算符的文档都可以在Python文档

我看到函数调用中使用了一个“管道”字符(
|
):

res = c1.create(go, come, swim, "", startTime, endTime, "OK", ax|bx)
管道在
ax | bx
中的含义是什么?

它是一个按位或整数。例如,如果
ax
bx
中的一个或两个
1
,则计算结果为
1
,否则计算结果为
0
。它也适用于其他整数,例如
15 | 128=143
,即二进制的
00001111 | 10000000=10001111

它是位or


Python中所有运算符的文档都可以在Python文档的页面中找到。

这也是联合集运算符

set([1,2]) | set([2,3])

这将导致
集合([1,2,3])

是的,以上所有答案都是正确的

尽管您可以为“|”找到更多奇特的用例,但如果它是一个类使用的重载运算符,例如

在这个特定的用例中,可以将管道“|”操作符作为unix管道操作符来考虑。但是我同意,在Python中,位运算符和并集运算符是“|”更常见的用例。

年,管道被增强为合并(并集)字典

>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}

Python没有逻辑or运算符。
5=101
7=111
101 | 111=111=7
@Ignacio:Python没有逻辑or运算符?!那你叫什么?@zeekay:对。而不是总是返回
True
False
总是返回它们的一个操作数,因此是“合并”而不是“逻辑”的。更一般地说,它使用第二个操作数调用第一个操作数的
\uuuu或
方法,因此您可以为自己的类定义它的行为。您应该对此感兴趣这可能比按位操作更常见。
>>> d = {'spam': 1, 'eggs': 2, 'cheese': 3}
>>> e = {'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> d | e
{'spam': 1, 'eggs': 2, 'cheese': 'cheddar', 'aardvark': 'Ethel'}
>>> e | d
{'cheese': 3, 'aardvark': 'Ethel', 'spam': 1, 'eggs': 2}