2012-05-14 3 views
0

Рассмотрим следующий фрагмент кода в PythonБуквальное Строка подстановки в питона

argKey = 'actualArgument' 

methodA(argKey=argVal) #invoking methodA 

где Methoda() определяется как:

def methodA(actualArgument, actualArgument2, actualArgument3) 

Methoda может быть вызван только через именованные аргументы, то есть. вы вызываете, указывая имя аргумента и передавая значение аргумента.

-> выдает ошибку:

TypeError: methodA() got an unexpected keyword argument 'argKey ' 

Я хочу 'Methoda', чтобы ссылаться на значение, содержащееся в переменной, т.е. '' argKey

methodA(actualArgument=argVal) 

Как получить замену строка в вызове вызова метода.?

+2

Это помогает понять, почему вы хотите это сделать ... – detly

ответ

3

Для передачи параметров с вычисленным именами, используйте Dict:

def foo(a, b): 
    return a+b 

name_of_a = 'a' 
params = {name_of_a: 1, 'b': 2} 
print foo(**params) # note the asterisks 
+1

Вот некоторые документы из учебника HTTP: //docs.python. орг/учебник/controlflow.html # распаковка-аргумент-листы –