python - 2个输入函数?

标签 python python-2.7

所以我在一种 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/

相关文章:

python - 为什么在 Python 3 的 'sys.modules' 中没有导入模块?

python - 如何将具有相同名称的 Pandas 列替换为另一个数据框?

python - python中的矩阵乘法导致类型错误

python - 将 chr(13) 写入文件时读取时会给出 chr(10)

python - PyMC 中的装饰器

python - 如何在 python 中为变量赋值编写单元测试?

python - 绕过 Python Scapy 中的一些数据包层

python - RC4算法实现过程中出现语法错误

python - 我如何传送(wormy.py)

python - 在向量中使用多行应用