是否可以在运行时在python中重新定义函数?

时间:2019-02-20 16:47:38

标签: python function override

对于我的数值分析类,我有一个小项目,其中我必须使用不同的方法评估多个函数,以便我们可以比较这些方法的性能和效率。虽然我的大多数代码运行良好,但我们必须评估的功能之一是x的立方根。由于python利用主体根,因此导致方法有所不同。我希望能够使用一个函数名称,以便在必须使用多维数据集根函数时不必复制粘贴所有内容。有没有一种方法可以在运行时重新定义函数?我没有实现任何类,因此如果可能的话,我不想介绍一个类。谢谢。

编辑: 我的主要功能是:

def main():
    global func, derv
    func = 'pow(x,2)*sin(x)'
    derv = '2*x*sin(x)+pow(x,2)*cos(x)'
    print('evaluating x^2sin(x): ')
    newton(-0.2,10**-4,20)
    bisection(-0.9,1,10**-4,20)
    fixed(-0.2,10**-4,20)

    func = 'pow(x,2)*sin(x)-x'
    derv = '2*x*sin(x)+pow(x,2)*cos(x)-1'
    print('evaluating x^2sin(x)-x: ')
    newton(-0.2,10**-4,20)
    bisection(-0.9,1,10**-4,20)
    fixed(-0.2,10**-4,20)

    func = 'pow(x,1/3'
    derv = '(1/3)*pow(x,(-2/3)'
    print('evaluating cuberoot(x): ')
    newton(-0.2,10**-4,20)
    bisection(-0.9,1,10**-4,20)
    fixed(-0.2,10**-4,20)

和我的函数/派生函数是:

def function(x):
    y = eval(func)
    return y

def function(x):
    y = eval(func)
    return y

该函数和派生函数在其他函数中用于评估我正在使用的数值方法的数字。对于多维数据集根函数,由于方法的值将在负数和正数之间反弹,因此我必须创建一个函数或某种东西才能返回有效值。

0 个答案:

没有答案