如以下配方所示,使用了|=运算符。我以前从未见过它,也没有记录。这是什么意思?
4 回答
7
这是一个就地的|. a |= b主要相当于. _a = a | b
于 2012-04-26T07:58:12.953 回答
3
在您询问的特定食谱中:
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
dwFlags是一个位掩码,也就是说,它通过打开整数中的适当位来将多个标志存储在单个整数值中。在这种情况下,STARTF_USESHOWWINDOW的值为1,这意味着如果dwFlags整数中的最低有效位为 ,则设置此标志1,如果 LSB 为 ,则不设置此标志0。
在这种情况下,|=运算符所做的是获取左操作数并对其进行更改,以便将1左操作数中的位设置在其中,而其余位则保持不变。
例如,如果它设置了一些标志,使其之前的二进制表示是 ,例如,00101000它将被设置为00101001,添加subprocess.STARTF_USESHOWWINDOW到设置的标志而不影响在操作之前设置的其他标志。
于 2012-04-26T11:54:11.860 回答
1
a |= b 意思相同a = a | b。
于 2012-04-26T07:58:35.500 回答