将关键字参数传递给scipy中的四元集成函数

问题描述 投票:0回答:1

我想将关键字参数传递给dblquad或nquad中的integrand函数。是否有可能在这里有一个关键字参数,或者我只是选择只有位置参数?

基本上,我试图将字典作为普通参数传递。以下是我尝试这样做:

def foo(A, B, **kwargs):
    alpha = kwargs.get('alpha', 1.0)
    beta = kwargs.get('beta', 1.0)
    return A*alpha+B*beta
def integrator(**kwargs):
    alpha = kwargs.get('alpha', 1.0)
    beta = kwargs.get('beta', 1.0)
    a = dblquad(foo, 0, 2*pi, lambda x: 0, lambda x: 2*pi, args=(kwargs))
integrator(alpha = 1.0, beta = 2.0)

Python抱怨有不正确数量的位置参数。它将关键字字典视为多个位置参数。

python numpy scipy kwargs
1个回答
0
投票

简短回答:不支持kwargs。

可能的解决方法包括将关键字args作为位置传递,将单个dict作为位置参数传递,或将相关关键字作为属性附加到要集成的函数。

© www.soinside.com 2019 - 2024. All rights reserved.