lambda函数在分配多个函数时会更改其自身

时间:2019-11-20 00:10:58

标签: python lambda

首先,对不起我的英语不好。

所以我有一组点,我想创建一个lambda函数来为每两个连续的点创建一个线函数。这条线是这样的,Ax + By + C = f(x,y)。因此,对于每组点,A,B和C将带有不同的值。但是,在我的程序中使用它时,它不起作用,每次创建新函数时,每个函数的值A,B,C都会改变。 这是我的代码,

for x in range(len(poly)):
    y = x + 1
    if y == len(poly):
        y = 0
    x1, y1 = poly[x]
    x2, y2 = poly[y]
    A = y2 - y1
    B = x1 - x2
    C = (y1 * (x2 - x1) - x1 * (y2 - y1))
    line.append(lambda x, y: A * x + B * y + C)

我想过要解决此问题的方法,只需创建3个A,B,C值列表,并在每次创建函数时附加一个新值即可。但是我仍然认为应该为这个问题提供一个普遍的解决方案。

因此,如果您可以放弃任何帮助,我将不胜感激。

非常感谢您。

0 个答案:

没有答案