我在使用安全多方计算的程序中有以下代码片段:
c = self.runtime.open(b) # open result
c.addCallback(self.determine)
j = self.compute(i)
return j
现在该函数determine将布尔值设置为 false 或 true,具体取决于 c 的值。该布尔值随后由函数使用compute。
我认为回调总是首先执行,在程序的其余部分之前。但是,我收到一个错误,compute即布尔值未定义。
如何在执行之前 compute强制执行回调?
因为我在一个安全的多方计算框架中工作,所以我必须使用回调,因为 for 的值c是一个共享的秘密。但是,我认为如果没有秘密共享,问题也会出现。语言是 Python。
determine和的代码compute是这样的:
def determine(c):
global computeB
computeB = False
if c == 1:
computeB = True
else:
computeB = False
return c
def compute(i):
if computeB:
do this
else:
do this
return result