因此,我一直在以某种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)
实际上是您在lambda
函数中返回的mux41
函数的输入。
您的mux41
函数返回一个lambda
函数,该函数看起来像是根据mux41
函数的输入返回了字典中的值。您需要第二个输入来说出您要返回的值。
它直接等效于:
def xor2(a,b):
f = mux41(0,1,1,0)
return f(a,b)