如何在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总是相同的,因此您应该期望它是相同的。你从来没有用过我