我正在尝试在类实例方法中进行一些曲线拟合,而 curve_fit 函数给我的类实例方法提供了太多参数。
代码是
class HeatData(hx.HX):
"""Class for handling data from heat exchanger experiments."""
然后几行方法可以正常工作,那么我的功能是:
def get_flow(pressure_drop, coeff):
"""Sets flow based on coefficient and pressure drop."""
flow = coeff * pressure_drop**0.5
return flow
和 curve_fit 函数调用
def set_flow_array(self):
"""Sets experimental flow rate through heat exchanger"""
flow = self.flow_data.flow
pressure_drop = self.flow_data.pressure_drop
popt, pcov = spopt.curve_fit(self.get_flow, pressure_drop, flow)
self.exh.flow_coeff = popt
self.exh.flow_array = ( self.exh.flow_coeff * self.exh.pressure_drop**0.5 )
给出错误
get_flow() takes exactly 2 arguments (3 given)
我可以通过在类之外定义 get_flow 并像这样调用它来使其工作:
spopt.curve_fit(get_flow, pressure_drop, flow)
但这并不好,因为它确实需要成为类中的一种方法才能像我想要的那样多才多艺。我怎样才能将这项工作作为类实例方法?
我还希望能够将 self 传递给 get_flow 以为其提供更多不适合 curve_fit 使用的参数的参数。这可能吗?