Форум сайта python.su
26
Блин. Вот в этом-то и проблема, что понимать – понимаю, а чёткую цель поставить не могу. Но красиво нереально! Попробую что-нить близкое для Qt нахимичить… :-)
Офлайн
2
Здравствуйте, подскажите как получить доступ к атрибутам декорируемой функции?
К примеру есть функция:
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
- не сработает
Заранее спс
Офлайн
2
Fibio
Не надо поднимать старые темы! Один вопрос – одна тема.
Офлайн
2
Сорри по декораторам нашла еще одну темку, но там ответа на мой вопрос не выявила, Там общие примеры, которые встречаются в инете, я все их прочла. Поэтому подняла старую, чтоб новую не создавать
Офлайн
2
Так в том то и дело, что не надо поднимать старые темы и задавать в них свои новые вопросы. Создайте новую тему со своим вопросом и осмысленным заголовком.
Офлайн