ZZZ
Июль 4, 2009 07:25:16
Блин. Вот в этом-то и проблема, что понимать – понимаю, а чёткую цель поставить не могу. Но красиво нереально! Попробую что-нить близкое для Qt нахимичить… :-)
Fibio
Дек. 25, 2010 21:43:38
Здравствуйте, подскажите как получить доступ к атрибутам декорируемой функции?
К примеру есть функция:
def aa(a):
a = a * 2
return a
Необходимо чтобы вначале была проверка значения а, например не равно ли оно 0:
def prov(func):
def prov1(*args, **kwargs):
b = func(*args, **kwargs)
if b == 0:
print ‘a is zero’
return func(*args, **kwargs)
return prov1
Это учебный так сказать пример, но тут одно но: “b = func(*args, **kwargs)” - и присваевается не аргумет функции аа, а ее результат, проверка работает только потому, что 0*2 = 0, таким образом если я, например, сделаю проверку для а=1
def prov(func):
def prov1(*args, **kwargs):
b = func(*args, **kwargs)
if b == 1:
print ‘a is one’
return func(*args, **kwargs)
return prov1
- не сработает
Заранее спс
Александр Кошелев
Дек. 25, 2010 22:09:00
Fibio
Не надо поднимать старые темы! Один вопрос – одна тема.
Fibio
Дек. 25, 2010 22:22:12
Сорри по декораторам нашла еще одну темку, но там ответа на мой вопрос не выявила, Там общие примеры, которые встречаются в инете, я все их прочла. Поэтому подняла старую, чтоб новую не создавать
Александр Кошелев
Дек. 25, 2010 22:25:18
Так в том то и дело, что не надо поднимать старые темы и задавать в них свои новые вопросы. Создайте новую тему со своим вопросом и осмысленным заголовком.