在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本身内。