Python运算符| =含义

松饼2015

由于python的某些版本控制问题,我势必会使用自定义函数来比较HMAC(SHA512)。为此,我发现了以下功能:

def compare_digest(x, y):
    if not (isinstance(x, bytes) and isinstance(y, bytes)):
        logfile.debug("both inputs should be instances of bytes")
    if len(x) != len(y):
        return False
    result = 0
    for a, b in zip(x, y):
        result |= a ^ b
    return result == 0

我在Django中使用了它,因此我创建了一个记录器(日志文件),该记录器为我将调试消息保存到文件中。

代码在这一步中断:

result |= a ^ b

但是,我不知道| =运算符代表什么,这里发生了什么。如果有人可以解释这一点,我可以尝试重写它。

我的python版本是(不幸的是2.7.4)和2.7.7,我不会有问题,因为该函数可以正确移植并可用。

ap

|是按位或运算符。|=是按位或等价的+=-=等,基本上a |= b是用于简写a = a | b

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章