为什么 left = lambda: cursor = cursor - 1 有效,而 left = lambda: cursor -= cursor 给我一个语法错误?
lambda 中的就地减法有问题吗?
编辑: 一点上下文。 我正在尝试与成员一起上课,例如:
self.instructions = {
"0": lambda: self.tape[self.cursor] = 0
"1": lambda: self.tape[self.cursor] = 1
"L": lambda: self.cursor -= 1
"R": lambda: self.cursor += 1
"HALT" = lambda: self.halted = True]
}
我如何使它工作?
请您参考如下方法:
lambda 表达式是只返回一个值的函数的快捷方式:
func = lambda x: x - 1
大致相同
def func(x):
return x - 1
您的两个示例都不起作用,因为赋值在 Python 中不像在某些其他语言(尤其是类似于 C 的语言)中那样是表达式。也就是说,cursor = cursor - 1 不能在 lambda 中,cursor -= 1 也可以。两者都不能进入 return 语句。
