所以我在一种 python 类中给出了以下代码。它确实是一门离散的数学课,但他使用 python 来演示所有内容。这段代码应该演示一个多路复用器并用它构建一个异或门。
def mux41(i0,i1,i2,i3):
return lambda s1,s0:{(0,0):i0,(0,1):i1,(1,0):i2,(1,1):i3}[(s1,s0)]
def xor2(a,b):
return mux41(0,1,1,0)(a,b)
在 xor2
函数中,我不理解 return mux41(0,1,1,0)(a,b)
背后的语法,1 和 0 是输入到 mux 函数,但是 (a,b) 在做什么?
最佳答案
(a, b)
实际上是您在 mux41
函数中返回的 lambda
函数的输入。
您的 mux41
函数返回一个 lambda
函数,它看起来像是根据对 mux41
函数的输入返回字典中的值。您需要第二个输入来说明您要返回哪个值。
它直接等同于:
def xor2(a,b):
f = mux41(0,1,1,0)
return f(a,b)
关于python - 2个输入函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656951/