Вопросы с тегом 'python-decorators'

В Python декораторы - это функции, которые удобно изменяют функции, методы или классы с использованием специального синтаксиса.
16
ответов

Как создать цепочку декораторов функций?

Как я могу сделать два декоратора в Python, которые будут делать следующее? @makebold @makeitalic def say(): return "Hello" ..., который должен возвращаться: "<b><i>Hello</i></b>" Я не пытаюсь сделать HTML таким обра...
задан 11 апр. '09 в 10:05
7
ответов

Как работает декоратор @property?

Я хотел бы понять, как работает встроенная функция property. Меня смущает то, что property также можно использовать в качестве декоратора, но он принимает только аргументы при использовании в качестве встроенной функции, а не при использовании в кач...
задан 26 июня '13 в 23:47
10
ответов

Пример реального мира о том, как использовать свойство свойства в python?

Мне интересно, как использовать @property в Python. Я прочитал документы python, и пример там, на мой взгляд, является просто игрушечным кодом: class C(object): def __init__(self): self._x = None @property def x(self): ...
задан 10 июня '11 в 11:48
1
ответ

Порядок выполнения декоратора

def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() Выход: "<b>...
задан 07 дек. '14 в 14:24
5
ответов

Как вставить переменную в область с помощью декоратора в python

[Отказ от ответственности: может быть больше pythonic способов делать то, что я хочу сделать, но я хочу знать, как работает область обзора python] Я пытаюсь найти способ сделать декоратор, который делает что-то вроде инъекции имени в область действи...
задан 25 июля '13 в 18:21
2
ответов

Как я могу заставить декоратор Python работать после завершения декорированной функции?

Я хочу использовать декоратор для обработки аудита различных функций (в основном, функции просмотра Django, но не исключительно). Для этого я хотел бы иметь возможность проверять функцию пост-исполнение - то есть функция работает как обычно, и если...
задан 05 февр. '13 в 11:46
3
ответов

Является ли Python Decorator таким же, как аннотация Java, или Java с аспектами?

Декораторы Python одинаковы или похожи или принципиально отличаются от аннотаций Java или что-то вроде Spring AOP или Aspect J?
задан 11 марта '13 в 22:40
6
ответов

Как использовать декораторы Python для проверки аргументов функции?

Я хотел бы определить некоторые общие декораторы для проверки аргументов перед вызовом некоторых функций. Что-то вроде: @checkArguments(types = ['int', 'float']) def myFunction(thisVarIsAnInt, thisVarIsAFloat) ''' Here my code ''' pass Бо...
задан 08 марта '13 в 20:29
5
ответов

Decorator для метода класса, который кэширует возвращаемое значение после первого доступа

Моя проблема и почему Я пытаюсь написать декоратор для метода класса @cachedproperty. Я хочу, чтобы он вел себя так, что, когда метод сначала вызывается, метод заменяется его возвращаемым значением. Я также хочу, чтобы он вел себя как @property, т...
задан 18 апр. '16 в 4:55
2
ответов

Декораторы и метод класса

У меня возникли проблемы с пониманием того, почему происходит следующее. У меня есть декоратор, который ничего не делает, кроме того, что он проверяет, является ли функция методом. Я думал, что понял, что такое метод на Python, но, очевидно, это не т...
задан 19 сент. '12 в 13:41
1
ответ

Python functools lru_cache с помощью методов класса: объект выпуска

Как я могу использовать классы lru_cache functools внутри классов без утечки памяти? В следующем минимальном примере экземпляр foo не будет выпущен, хотя выходит за рамки и не имеет реферера (кроме lru_cache). from functools import lru_cache class ...
задан 12 нояб. '15 в 16:21
2
ответов

Объем переменных в декораторе python

У меня очень странная проблема в декораторе Python 3. Если я это сделаю: def rounds(nr_of_rounds): def wrapper(func): @wraps(func) def inner(*args, **kwargs): return nr_of_rounds return inner return wrapp...
задан 21 апр. '15 в 3:07
5
ответов

Python - декораторы

Я пытаюсь изучить Decorators. Я понял ее концепцию и теперь пытаюсь ее реализовать. Вот код, который я написал Код не требует пояснений. Он просто проверяет, прошел ли аргумент в int или нет. def wrapper(func): def inner(): if issubc...
задан 06 янв. '14 в 10:50
5
ответов

как сделать условный декоратор в python 2.6

Возможно ли, чтобы декоратор выполнял функцию условно. Например, я хочу украсить функцию foo() функцией таймера (timeit), только make_performance_analysis - True (см. Ниже код psuedo). if doing_performance_analysis: @timeit def foo(): """ ...
задан 23 мая '12 в 20:20
1
ответ

Применение декоратора к импортированной функции?

Я хочу импортировать функцию: from random import randint а затем примените к нему декоратор: @decorator randint Мне было интересно, есть ли для этого какой-то синтаксический сахар (например, что у меня выше), или мне нужно сделать это следующи...
задан 14 сент. '14 в 4:46