Найти - Пользователи
Полная версия: Заполнение именованных параметров функции с помощью словаря
Начало » Python для новичков » Заполнение именованных параметров функции с помощью словаря
1 2
NE88
Есть сторонняя функция, чей исходный код менять нет возможности (т.е. нельзя переписать ее на использование **kwargs)
func(one, two, three)
    #что-то происходит
    pass

Можно ли как-то выполнить ее (или обернуть), передав в нее в качестве параметров словарь
arg = {'one':123,'two':098,'three':456}
Informatikum
Может быть просто в цикле передавать нужные аргументы в нужном количестве?
Budulianin
NE88
Можно ли как-то выполнить ее (или обернуть), передав в нее в качестве параметров словарь

func(**args)
4kpt_II
Легко

def func(one, two, three):
    print one, two, three
kw = {'one':123, 'two':098, 'three':456}
func(**kw)

Обратное тоже верно.

P.S. Почитайте Лутца. Слишком элементарный вопрос.
NE88

Informatikum по порядку нельзя, так как может быть что-то пропущено и не хочется связываться с
exec()
Budulianin Функция чужая и уже написана без использования **args
4kpt_II
NE88
Budulianin Функция чужая и уже написана без использования **args
Чего?
Это вызов а не определение…
Он написал Вам как вызвать Вашу функцию и передать ей словарь, который потом самостоятельно разберется по-запчастям.
Budulianin
Informatikum
Может быть просто в цикле передавать нужные аргументы в нужном количестве?

Тебя же уже послылаи читать книги, а ты опять хрень пишешь, нубист
Budulianin
NE88
Budulianin Функция чужая и уже написана без использования **args

Тебя отправляю туда же, чтобы не писал чушь
NE88
Все понял, спасибо
Informatikum
Budulianin
Тебя же уже послылаи читать книги, а ты опять хрень пишешь, нубист
К твоему лошадиному мнению, я читаю Лутца, но там таких примеров я еще не видел.

И ты хочешь сказать, что нельзя в цикле или просто передачей переменных передать в функции значения?

def function(one, two, three):
	one = one + two + three
	print(one)
arg = {'one':100,'two':200, 'three':300}
a = arg['one']
b = arg['two']
c = arg['three']
print(a, b, c)
function(a, b, c)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB