Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2014 21:30:44

NE88
Зарегистрирован: 2014-01-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

Есть сторонняя функция, чей исходный код менять нет возможности (т.е. нельзя переписать ее на использование **kwargs)

func(one, two, three)
    #что-то происходит
    pass

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

Офлайн

#2 Янв. 13, 2014 21:33:08

Informatikum
Зарегистрирован: 2013-12-11
Сообщения: 55
Репутация: +  -1  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

Может быть просто в цикле передавать нужные аргументы в нужном количестве?

Офлайн

#3 Янв. 13, 2014 21:39:06

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

NE88
Можно ли как-то выполнить ее (или обернуть), передав в нее в качестве параметров словарь

func(**args)



Офлайн

#4 Янв. 13, 2014 21:40:48

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

Легко

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

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

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

Отредактировано 4kpt_II (Янв. 13, 2014 21:43:57)

Офлайн

#5 Янв. 13, 2014 21:41:38

NE88
Зарегистрирован: 2014-01-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря


Informatikum по порядку нельзя, так как может быть что-то пропущено и не хочется связываться с

exec()
Budulianin Функция чужая и уже написана без использования **args

Офлайн

#6 Янв. 13, 2014 21:42:34

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

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

Отредактировано 4kpt_II (Янв. 13, 2014 21:43:26)

Офлайн

#7 Янв. 13, 2014 21:44:58

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

Informatikum
Может быть просто в цикле передавать нужные аргументы в нужном количестве?

Тебя же уже послылаи читать книги, а ты опять хрень пишешь, нубист



Офлайн

#8 Янв. 13, 2014 21:46:01

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

NE88
Budulianin Функция чужая и уже написана без использования **args

Тебя отправляю туда же, чтобы не писал чушь



Офлайн

#9 Янв. 13, 2014 21:49:47

NE88
Зарегистрирован: 2014-01-13
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

Все понял, спасибо

Офлайн

#10 Янв. 13, 2014 22:06:54

Informatikum
Зарегистрирован: 2013-12-11
Сообщения: 55
Репутация: +  -1  -
Профиль   Отправить e-mail  

Заполнение именованных параметров функции с помощью словаря

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version