python中 | 符号的含义

 self._impl.register(fd, events | self.ERROR)

就比如这个,传参的时候出现了 | ,是什么意思,我记得 js 里面有它,表示如果 events 非空,返回 events,如果 events 为空,返回 self.ERROR,不知道 python 里面是不是也是这样的

阅读 4.8k
1 个回答

'|'就是按位取或运算,看看下面的代码能不能帮助你理解:

print(0b000111 | 0b111000, 0b111111)

SYS_ERROR = 0b0010
OS_ERROR =  0b0001
event =     0b0000

# some code
if True:
    event = event | SYS_ERROR

# some code
if True:
    event = event | OS_ERROR

# Handle Error
if event & SYS_ERROR:
    print("System Error occurred")

if event & OS_ERROR:
    print("OS Error occurred")
    

你问题里描述的那种行为,应该这么写:

event = []
something = [1,2,3]

rc = event if event else something
print(rc)

但是对于非此即彼的问题,你的说法和实际效果是等价的:

event = 0b0
something = 0b1

rc = event if event else something
print(rc, event|something)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进