我不明白为什么我得到这个错误:[...]有多个参数值[...]

时间:2018-04-19 06:57:13

标签: python genetic-algorithm

我定义了以下功能:

def lattice_pipe(real_coords, guess_cmap): 
    guess_coords = laplacian_coords(guess_cmap)
    return fitness(real_coords, kabsch(real_coords,guess_coords))

我用这种方式称呼它:

fit = list(map(functools.partial(lattice_pipe, real_coords = coords_real, guess_cmap = cmap_guess), population))

但是我收到以下错误:

  

fit = list(map(functools.partial)(lattice_pipe,real_coords =   coords_real,guess_cmap = cmap_guess),人口))

     

TypeError:lattice_pipe()获得了多个参数值   'real_coords'

我无法理解为什么我会这样做因为我认为我只给它需要的两个参数是real_coords和guess_cmap ......

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您想从guess_cmap获取population,请不要在functools.partial()来电中绑定它。使用列表推导从每个元素中提取它。

fit = map(functools.partial(lattice_pipe, real_coords = coords_real), [p['guess_cmap'] for p in population])