Передача аргумента ключевого слова в функции интеграции квадрата в scipy - PullRequest
0 голосов
/ 25 марта 2019

Я хочу передать аргументы ключевого слова, чтобы интегрировать функцию в dblquad или nquad. Можно ли вообще иметь здесь аргумент ключевого слова или я должен просто включить только позиционные аргументы?

По сути, я пытался передать словарь как обычный аргумент. Ниже моя попытка сделать это:

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 жалуется на неправильное количество позиционных аргументов. Он обрабатывает словарь ключевых слов как ряд позиционных аргументов.

1 Ответ

0 голосов
/ 26 марта 2019

Краткий ответ: kwargs не поддерживаются.

Возможные обходные пути включают передачу аргументов ключевого слова в качестве позиционных, передачу одного дикта в качестве позиционного аргумента или присоединение соответствующих ключевых слов в качестве атрибутов к интегрируемой функции.

...