因此,我一直在以某种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)

10-01 15:51