我创建了一个具有函数作为其属性之一的类。该函数基于参数a
,b
创建,然后存储在类中。
该类的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)
如何重新训练我的课程,以便我可以存储所有这些功能并在课堂上使用它们?