1
私はscipyルート検索関数(scipy.optimize.root)内で取得された複数の値を返そうとしています。例えばscipyルート検索/最適化関数から複数の値を返します
:
B = 1
def testfun(x, B):
B = x + 7
return B**2 + 9/18 - x
y = scipy.optimize.root(testfun, 7, (B))
グローバルを使用せずに、Bの値を返す方法はありますか?
@ wrwrwr完璧な、これはトリックでした。私は好奇心が強いです、このようなクロージャーを変数や変数のリストと共に使用して、名前を保持する方法はありますか?この場合、Bはparams ['B']ではなく更新されます。 – DivideByZero
技術的には、[this](http://stackoverflow.com/questions/31675756/temporarily-unpack-dictionary#answer-31675967)を辞書を '__exit__'で更新してください。簡潔にするために、 'params ['B']'の代わりに 'B'を使い、内部リターンの前に辞書を更新してください。 'dict'の代わりに名前空間(' class Params:pass')または '' namedtuple'(https://docs.python.org/3/library/collections.html#collections.namedtuple)を使うこともできます'params.B'への表記を短縮します。 – wrwrwr