如以下配方所示,使用了|=
运算符。我以前从未见过它,也没有记录。这是什么意思?
问问题
243 次
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 回答