【发布时间】:2019-09-02 21:03:58
【问题描述】:
我正在尝试制作一个程序来创建格式为y=mx+b 的 lambda 函数列表,其中“m”和“b”是预定值
我的总体目标是实现一个功能,
- 拍照
- 找到上面的线条
- 以纯色将它们扩展到整个图片
基本上,类似于 霍夫变换,如果你知道那是什么的话。
获得特定图像的线条后,我可以创建一个 lambda 函数来表示线条的斜率及其起点。我遇到了无法将 lambda 函数附加到列表的问题。
我已经试过了:
if __name__ == "__main__":
nums = []
for i in range(10):
j = lambda x: x + i
nums.append(j)
for i in nums:
print(i(1))
这是我得到的错误:
Traceback (most recent call last):
File "C:/Users/me/.PyCharmCE2018.3/config/scratches/scratch_3.py", line 7, in <module>
print(i(1))
File "C:/Users/me/.PyCharmCE2018.3/config/scratches/scratch_3.py", line 4, in <lambda>
j = (lambda x: x + i)
TypeError: unsupported operand type(s) for +: 'int' and 'function'
【问题讨论】:
-
所以我查看了那个网站,基本上我尝试将“i”更改为“1”,效果很好。为什么我不能用“i”代替?对于我的真实项目,我需要在其中有一个可变变量。