这是我的第一个问题,因此对于我确信我会犯的任何发布错误,我深表歉意。我确实首先搜索了以前回答的问题,但我没有找到合适的解决方案,尽管我认识到我可能没有使用正确的术语或关键字进行搜索。
我有一个通用函数,我想在 Python 中快速评估它。它被传递给优化器(fmin_cobyla),我希望它只接受一个参数。我希望能够选择使用可能由标志控制的此功能的不同变体(变体?口味?)。由于我希望快速评估它,因此在函数中包含一堆 if 或 case 语句是没有意义的(对吗?),所以目前我有围绕函数变体定义的 if 语句:
if flag==1:
def f(x):
for i in range(0,len(x)*3,3):
A[i:i+3,i:i+3]=1/x[i/3]*np.eye(3)
tmp=np.linalg.solve(A,b)
y=somecmodulefunction(tmp)
return y
elif flag==2:
def f(x):
for i in range(0,len(x)*3,3):
A[i:i+3,i:i+3]=x[i/3]*np.eye(3)
tmp=np.linalg.solve(A,b)
y=somecmodulefunction(tmp)
return y
...
除一行外,功能相同。这是正确的方法吗?有没有办法做到这一点,如果我有 10 个不同的变体,它不仅仅是一个长而笨重的代码块?
谢谢!