lambdify不再接受关键字args的字典?

时间:2014-11-28 10:30:34

标签: python sympy

在SymPy版本0.7.5中,我可以定义一个lambdified函数,如下所示......

Y, K, L = sym.var('Y, K, L')
params = {'A0': 1.0, 'g': 0.02, 'L0': 1.0, 'n': 0.02, 's': 0.15, 'alpha': 0.33, 'delta': 0.05}
args = [Y, K, L] + sym.var(list(params.keys()))
f = sym.lambdify(args, some_expression, my_modules)

然后将f调用为f(10, 105, 10, **params)以获得所需的结果。但是在更新到SymPy 0.7.6之后,上面的语法会引发错误。

TypeError: <lambda>() got an unexpected keyword argument 'g'

我可以通过将f调用为f(10, 105, 10, *params.values())来获得所需的行为,但我更喜欢原始行为,因为我在我的库代码中定期使用此语法。我想知道这是不是一个bug?也许我一直在&#34;误用&#34;这些年来一直在贬低?

编辑: 我继续在GitHub上打开issue

编辑: 完整的追溯如下:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-f569fade366f> in <module>()
----> 1 model.compute_solow_residual(output, capital, labor).plot()

/Users/drpugh/Research/python-dev/quant-econ/quantecon/models/solow/model.py in     compute_solow_residual(self, Y, K, L)
    705 
    706     def compute_solow_residual(self, Y, K, L, ):
--> 707         return self._numeric_solow_residual(Y, K, L, **self.params)
    708 
    709     def find_steady_state(self, a, b, method='brentq', **kwargs):

TypeError: <lambda>() got an unexpected keyword argument 'g'

不确定完全回溯是否有用,因为问题似乎在lambdify本身内。

0 个答案:

没有答案