存储和使用函数作为类属性

时间:2018-04-13 15:17:28

标签: python-3.x class lambda

我创建了一个具有函数作为其属性之一的类。该函数基于参数ab创建,然后存储在类中。

该类的write_derivatives方法接受函数并与sympy区分 - 然后它会吐出另一个lambda函数。

但是我似乎无法在课堂上存储这些功能。

class rosenbrock:
    def __init__(self, a, b):
        self.f_ros = lambda x0,x1:(a-x0)**2+b*(x1-x0**2)**2
        self._write_derivatives()

    def _write_derivatives(self):
        self.df_ros_dx0 = partial_diff(self.f_ros(x0,x1),x0) #creates another lambda function
        self.df_ros_dx1 = partial_diff(self.f_ros(x0,x1),x1)
        self.d2f_ros_dx0x0 = partial_diff(self.df_ros_dx0(x0,x1),x0)
        #etc.

self.f_ros为例;如果我按照我在这里写的那样尝试保存它,那么当我在_write_derivatives中调用它时会出现错误

  

不支持的操作数类型 - :'int'和'tuple'

将其封装在staticMethod http://api.jquery.com/attr/允许我保存它,但是如果没有其他错误我就无法使用它

  

'staticmethod'对象不可调用

然后用__func__作为as per this question展开它会导致第一个错误

self.df_ros_dx0 = partial_diff(self.f_ros.__func__(x0,x1),x0)

如何重新训练我的课程,以便我可以存储所有这些功能并在课堂上使用它们?

0 个答案:

没有答案