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

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

В чем разница между @staticmethod и @classmethod?

В чем разница между функцией, украшенной @staticmethod, а другая - @classmethod?
25 сент. '08 в 21:01
18

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

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

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

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

Что делает символ "at" (@) в Python?

Я смотрю на некоторый код Python, который использовал символ @, но я понятия не имею, что он делает. Я также не знаю, что искать в качестве поисковых документов Python или Google не возвращает релевантные результаты при включении символа @.
17 июн. '11 в 23:19
11

Как избежать шаблона "self.x = x; self.y = y; self.z = z" в __init__?

Я вижу такие шаблоны, как def __init__(self, x, y, z): ... self.x = x self.y = y self.z = z ... довольно часто, часто с гораздо большим количеством параметров. Есть ли хороший способ избежать такой утомительной повторяемости? Е...
04 февр. '16 в 1:22
10

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

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

Как передать дополнительные аргументы декоратору Python?

У меня есть декоратор, как показано ниже. def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' Я хочу улучшить этот декоратор, чтобы п...
16 апр. '12 в 14:38
2

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

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 в 11:24
7

То же имя функционирует в том же классе, элегантный способ определить, на какой вызов?

Я пытаюсь сделать контроль над версиями продуктов в сценариях Python по определенной причине, но я не мог понять, как это сделать элегантным способом - пожалуйста, помогите. В настоящее время я делаю что-то вроде ниже. Однако при сохранении содержи...
10 сент. '18 в 6:15
5

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

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

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

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

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

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

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

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

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

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

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

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