| =运算符在python中做什么?

时间:2012-04-26 07:56:59

标签: python operators

following recipe所示,使用了|=运算符。我以前从未见过它,也没有记录。这是什么意思?

4 个答案:

答案 0 :(得分:7)

这是就地|a |= b 大部分等同于a = a | b

答案 1 :(得分:4)

|=是所谓的augmented assignment statement。它的目的是进行就地或操作,就像the normal | operation一样。

然而,有一些次级差异,因为对象的不同方法被调用:对于|,对于|=,它是__or__()__ror__(),它是__ior__()

答案 2 :(得分:3)

在您要询问的特定食谱中:

startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

dwFlags是一个位掩码,也就是说,它通过打开整数中的相应位将一些标志存储在一个整数值中。在这种情况下,STARTF_USESHOWWINDOW的值为1,这意味着如果dwFlags整数中的最低有效位为1,则设置此标志,并且未设置如果LSB是0

在这种情况下|=运算符的作用是取左操作数并更改它,以便在左操作数中设置1位,其余位保持不变。

例如,如果它设置了一些标志,使得它之前的二进制表示是00101000,则它将被设置为00101001,并将subprocess.STARTF_USESHOWWINDOW添加到标志中设置时不会影响操作前设置的其他标志。

答案 3 :(得分:1)

a |= b表示与a = a | b相同。