functools.partial 引发 TypeError "got multiple values for keyword argument" Python

functools.partial raising TypeError "got multiple values for keyword argument" Python

我尝试有效地遍历许多字符串,但我想用部分函数插入重复的字符串部分

def add_seqs(seqs_outer,sequence):
    return seqs_outer[0]+sequence+seqs_outer[1]

def my_function(string,start,stop,list_variable):
    seqs_pre=string[:start]
    seqs_post=string[stop:]
    seqs_outer=(seqs_pre,seqs_post)
    seqs_out=map(functools.partial(add_seqs,seqs_outer=seqs_outer),list_variable)
    return seqs_out

我最终想在许多不同的 string 上使用一个应用函数,固定 list_variable,但我明白了my_function 中的错误:

TypeError: my_function() got multiple values for keyword argument 'seqs_outer'

我想我在使用 partial 时做错了 - 我怎样才能使上面的代码工作?

好的,受到 this thread 的启发,我调换了

中参数的顺序

def add_seqs(seqs_outer,sequence)

def add_seqs(sequence,seqs_outer)

这完成了工作