如何在python中深度复制函数

如何在python中深度复制函数,python,function,deep-copy,Python,Function,Deep Copy,我需要在许多情况下计算一个函数,然后对所有这些情况求和。我想一种方法是创建一个列表、一个字典或一个函数数组,但无论我做什么,前面的函数都会在循环中被擦除 def general_func(r, arg1, arg2): return r*arg1*arg2 fun_list = [] for i in range(N): arg1_i, arg2_i = my_arr[1:3] def local_func(r): return general_func

我需要在许多情况下计算一个函数,然后对所有这些情况求和。我想一种方法是创建一个列表、一个字典或一个函数数组,但无论我做什么,前面的函数都会在循环中被擦除

def general_func(r, arg1, arg2):
    return r*arg1*arg2

fun_list = []
for i in range(N):
    arg1_i, arg2_i = my_arr[1:3]
    def local_func(r):
        return general_func(r, arg1_i, arg2_i)
    fun_list.append(local_func)
我尝试了很多方法,但不管我做什么,我总是得到一个N乘以相同函数的元组


我也不确定最终如何对所有函数求和以保持一个大函数,即所有其他函数的和。

根据Samwell的回答,我在循环中定义了函数:

def local_func(r, arg1_i=arg1_i, arg2_i=arg2_i):

并且能够正确地定义我的函数数组。

被擦除的不是函数,而是局部变量的变化。Do
def local_func(r,arg1_i=arg1_i,arg2_i=arg2_i):
因此您可以在定义函数时捕获当前值。N和my_arr是什么?你可能想要兰姆达。此外,local_func总是相同的,因此您应该期望它是相同的。你从来没有用过我