Python 3.x 具有数学函数的参数的函数

Python 3.x 具有数学函数的参数的函数,python-3.x,function,mathematical-optimization,mathematical-expressions,Python 3.x,Function,Mathematical Optimization,Mathematical Expressions,我希望在Python中有这样一个函数: class EvaluationStrategy(object): def __init__(self, test_function): self.test_function = test_function class TestFunction(object): def objective_function(self, design_variable1, design_variable2): print("ext

我希望在Python中有这样一个函数:

class EvaluationStrategy(object):
    def __init__(self, test_function):

    self.test_function = test_function

class TestFunction(object):
    def objective_function(self, design_variable1, design_variable2):
        print("external function called")
        intermediate_results = self.__internal_function_evaluation_()

        v1= intermediate_results(0)
        v2= intermediate_results(2)

        v=test_function
调用包含EvaluationStrategy的函数后,testfunction(例如x^2)或类似的函数应该根据x来定义。但是如果没有定义x,Python总是抛出一个错误,所以我用lambda尝试了它,但是如果没有定义x,它也不能工作。
如果有人能帮助我,请提前感谢。

不清楚您在问什么(请参阅我的评论),但似乎您需要的要素之一是如何将函数作为参数传递并存储该函数以供以后执行

以下是如何做到这一点:

class EvaluationStrategy:
    def __init__(self, test_function):
        self.test_function = test_function

    def evaluate(self, arg):
        return self.test_function(arg)

ev = EvaluationStrategy(lambda x: x**2)

for i in range(2,5):
    print(i, ev.evaluate(i))

您能否添加一个实际、具体的示例,说明如何调用此函数,以及您希望得到什么结果?我调用EvaluationStrategy的子函数,并且必须插入一个函数…>>Evaluate(x**2)然后Evaluate函数在循环中分配新的x值,并为每个值计算x^2,例如>>2-->x^2=4>>4-->x^2=16抱歉,我看不出这两者之间的联系<代码>评估?我在您的代码示例中没有看到该函数。从哪里获得
x
值,如2?它是在某个方法调用中给出的吗?您能否提供一个您希望能够执行的确切脚本,并为此提供所需的输出?这将有助于确定您正在寻找的实现。谢谢!这是我搜索的,从未尝试将lambda内容放入我的输入中。---------------你也能帮我解决另一个问题吗?----------------------------我需要理解为什么while循环正在创建数组的数组…等等。--------------------每次下一轮开始时,旧参数都会更改为新参数(如预期的那样),但现在显示为数组(下一轮循环:array[array[xy]])------------------------------------这与错误是否有共同之处:对象数组可能是自引用的GA
,而循环本身不需要与列表有任何关系,尽管它可以是。此外,如果您将它与列表一起使用,它不会强制您描述的行为。我建议您发布一个新的问题,并包含行为不符合您要求的代码。如果你发帖时我不在,周围会有很多人帮助你。