用于调用函数的Python管道字符
只是一个简单的问题 我见过的一些python函数的调用如下所示,例如pygame:用于调用函数的Python管道字符,python,pygame,arguments,bitwise-or,Python,Pygame,Arguments,Bitwise Or,只是一个简单的问题 我见过的一些python函数的调用如下所示,例如pygame: pygame.display.set_模式((255,255),全屏)我觉得这很正常 但是,如果要使用多个参数,则必须使用|。例如: pygame.display.set_模式((255,255),全屏| HWSURFACE | DOUBLEBUF) 你什么时候为什么要打这种电话?我听说它是按位OR运算符,但它似乎只适用于布尔值。这是如何工作的?它们是不同选项的标志。每个标志只是一个数字,特别是2的幂。您可以使用
pygame.display.set_模式((255,255),全屏)
我觉得这很正常
但是,如果要使用多个参数,则必须使用|。例如:
pygame.display.set_模式((255,255),全屏| HWSURFACE | DOUBLEBUF)
你什么时候为什么要打这种电话?我听说它是按位OR运算符,但它似乎只适用于布尔值。这是如何工作的?它们是不同选项的标志。每个标志只是一个数字,特别是2的幂。您可以使用逐位运算符
|
翻转所有所需标志的位。举个例子可能会有所帮助:
>>> import re
>>> re.VERBOSE
64
>>> re.IGNORECASE
2
>>> re.VERBOSE | re.IGNORECASE
66
因此,如果re
想知道是否设置了IGNORECASE
标志,则只需检查第二位(对于2^1)是否等于1。如果是这样的话,我们应该忽略这个案例。如果它想知道是否是VERBOSE
,它会检查第7位(2^6)。通过或
将2和64组合在一起,可以得到第二位和第七位翻转的数字
>>> 66 & 2
2
>>> 66 & 64
64
>>> 66 & 8
0
我们可以看到66触发2和64的标志,但不是8。注意按位OR运算符与布尔OR运算符之间的区别:
|
是按位OR运算符,也就是说,OR运算是按操作数的每一位进行的:
>>> 1 | 2
3
这是因为1个二进制文件是001
,2个二进制文件是010
,所以它们每一位的OR位是011
,即3
或
是布尔运算符
>>> 1 or 2
1
>>> 0 or 2
2
或
运算符返回第一个有效值(不是0
,None
,[]
或{}
)请问,从哪里可以得到二进制数表(001=1)?更具体地说,是“二进制计数”部分