Найти - Пользователи
Полная версия: про декораторы
Начало » Python для новичков » про декораторы
1 2 3
ZZZ
Блин. Вот в этом-то и проблема, что понимать – понимаю, а чёткую цель поставить не могу. Но красиво нереально! Попробую что-нить близкое для Qt нахимичить… :-)
Fibio
Здравствуйте, подскажите как получить доступ к атрибутам декорируемой функции?
К примеру есть функция:
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
- не сработает

Заранее спс
Александр Кошелев
Fibio
Не надо поднимать старые темы! Один вопрос – одна тема.
Fibio
Сорри по декораторам нашла еще одну темку, но там ответа на мой вопрос не выявила, Там общие примеры, которые встречаются в инете, я все их прочла. Поэтому подняла старую, чтоб новую не создавать
Александр Кошелев
Так в том то и дело, что не надо поднимать старые темы и задавать в них свои новые вопросы. Создайте новую тему со своим вопросом и осмысленным заголовком.
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