Назначить переменную с переменной в функции - PullRequest
0 голосов
/ 07 мая 2010

Допустим, у нас есть

def Foo(Bar=0,Song=0):  
    print(Bar)
    print(Song)

И я хочу назначить любой из двух параметров в функции с помощью переменной sing и SongVal:

Sing = Song
SongVal = 2

Так что его можно запустить так: Foo(Sing=SongVal) Где Sing будет назначать параметр Song для SongVal, который равен 2. Результат должен быть напечатан так:

0
2

Так я должен переписать свою функцию или это возможно сделать так, как я хочу? (С помощью приведенного выше кода вы получаете сообщение о том, что в Foo нет параметра Sing. Заранее спасибо!

1 Ответ

4 голосов
/ 07 мая 2010

То, что вы ищете, это **kwargs способ передачи произвольных аргументов ключевых слов:

kwargs = {Sing: SongVal}
foo(**kwargs)

См. Раздел 4.7 руководства на www.python.org для получения дополнительной информации.примеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...