Передача аргументов функции как имен параметров в другую функцию - PullRequest
0 голосов
/ 28 сентября 2018

Предположим, у нас есть две функции foo и get_id в Python3.Я хочу вызвать функцию get_id внутри функции foo, используя аргумент функции foo в качестве имени аргумента в функции get_id.Например:

Я вызываю функцию foo:

result = foo("Person","name","John")

, а тело функции:

def foo(arg_1, arg_2, arg_3): res = get_id(arg_1, arg_2 = arg_3) return res

Что я хочу:

res = get_id("Person", name = "John")

, чтобы функция get_id была параметризована аргументом arg_2 функции foo.Однако то, как я это делаю, приводит к ошибке, поскольку python интерпретирует это как String. Любой совет приветствуется.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Я, вероятно, должен не попытаться понять, почему вы хотите это сделать :), но, возможно, есть решение:

def foo(arg_1, arg_2, arg_3):
    kwargs = {
        'arg_1_name': arg_1,
        arg_2: arg_3,
    }
    return get_id(**kwargs)

просто замените arg_1_name нафактическое имя параметра, используемого в функции get_id

0 голосов
/ 28 сентября 2018

Это способ передачи имени параметра в виде строки:

def test(a):
    print(a)

test(**{'a': 'hello world'})

Я уверен, что вы можете адаптировать это решение к вашей проблеме

...