Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование decorator, как получить словарь переменных функции 
V
    Опции темы
shupg
Дата 27.10.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 21.6.2006

Репутация: 2
Всего: 2



Привет!
Есть вопрос по поводу использования декораторов. Как получить словарь переменных функции, если это вообще возможно. У меня получилось только достать оттуда список значений, переданных в функцию. Вот..

Код

def decor_logging(f):
    def decorate(*args):
        print '%s(%s)' % (f.func_name, ','.join([str(a) for a in args]))
        return f(*args)
    return decorate

@decor_logging
def mymethod(f, g = 8):
    print f, g

mymethod(1, 2)


То есть в нутри функции decorate хочеться иметь словарь типа:
Код

kvargs = {'f' : 1, 'g' : 2}

PM MAIL   Вверх
MapaT
Дата 27.10.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.1.2006

Репутация: нет
Всего: нет



Получить имена аргументов функции:
Код

import inspect
args = inspect.getargspec(func)

PM MAIL   Вверх
shupg
Дата 28.10.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 21.6.2006

Репутация: 2
Всего: 2



Пасиба! Теперь только надо склеить два списка в словарь) Тема закрыта
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.