Описание тега python-decorators

In Python, decorators are functions that conveniently alter functions, methods or classes using a special syntax. Decorators dynamically alter the functionality without changing the source code being decorated.
1 ответ

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

Моя проблема выглядит следующим образом: class foo(obj): def __init__(self, st='123'): self.st = st def process(self, x): self.st += x @staticmethod def do_foo(x, myfoo=None): if myfoo is None: myfoo = foo() myfoo.process(x) def wrapper(fn, st): foo…
21 окт '15 в 23:37
2 ответа

Методы оформления Python с переменным числом позиционных аргументов и необязательным аргументом

Я пишу свое первое приложение на Python (3.4) с использованием SQLalchemy. У меня есть несколько методов, которые все имеют очень похожий характер. Они принимают необязательный аргумент session который по умолчанию None, Если session передается, фун…
07 июн '15 в 16:49
1 ответ

Передача аргументов декоратору

Я хочу передать список значений декоратору. Каждая функция, которая оформлена декоратором, передает свой список значений. Я использую decorator библиотека питонов Вот что я пытался - from decorator import decorator def dec(func, *args): // Do someth…
23 сен '14 в 13:46
1 ответ

Python устанавливает строку документации и получает имя метода динамически генерируемого метода класса

Я пытаюсь получить / установить имя и строку документации динамически создаваемых методов класса следующим образом, но у меня возникают проблемы с выяснением, как именно это сделать: import sys import inspect class test(object): pass @classmethod de…
4 ответа

Как поймать исключение в декораторе

У меня есть функция, моя причина исключения, и я хочу, чтобы она была декоратором. Код выглядит следующим образом: def des(i): def new_func(func): if i == 1: raise Exception else: return func return new_func @des(1) def func(): print "!!" if __name_…
20 авг '13 в 04:34
1 ответ

Динамическое добавление методов тестирования с использованием декоратора

В последние несколько месяцев я с большим успехом использую ДДТ для параметризации своих тестов. Теперь моя проблема в том, что я не могу ввести переменную списка в качестве источника данных. Это, похоже, сбивает с толку ДДТ, заставляя его не параме…
0 ответов

Как наследовать атрибут метода [python]

Я пытаюсь передать некоторые атрибуты из метода в родительском классе в метод в дочернем классе. И после этого я хочу использовать декоратор, который использует этот атрибут. Предположим, у меня есть два класса и такой декоратор: def my_decorator(fu…
3 ответа

Как атрибуты в функциях могут выдержать перенос?

Допустим, у меня есть следующая функция, которая имеет атрибут, который помечает ее для специальной обработки в подсистеме обратного вызова: def my_func(msg): print msg my_func.my_marker = SPECIAL_CONSTANT Проблема в том, что если другие биты кода п…
12 май '16 в 16:34
4 ответа

Ошибка декоратора: объект NoneType не вызывается

Я написал функцию декоратора, как это: def tsfunc(func): def wrappedFunc(): print '%s() called' % func.__name__ return func() return wrappedFunc() @tsfunc def foo(): pass foo() # to get it work, use foo instead of foo() foo() Я получил следующее соо…
26 янв '13 в 10:53
1 ответ

Python: Использование декораторов v/s mixins?

Я понял основы декораторов и миксинов. Декораторы добавляют новую функциональность к объекту без изменения других экземпляров объекта того же класса, в то время как миксин является разновидностью множественного наследования, используемого для наслед…
19 май '15 в 06:11
1 ответ

Наследование с декораторами

Этот вопрос является расширением предыдущего вопроса, который я разместил здесь: ссылка Я использую Python 3.6.2. У меня есть общий класс Framework от которого мои системы наследуют. Я пользуюсь декораторами on_initialize, on_event, а также on_final…
0 ответов

Как проверить вручную оформленную функцию?

У меня есть объект клиента Client, У него много функций синхронизации, и у меня есть декоратор, который может преобразовать их в асинхронные функции. Поскольку я не могу изменить исходный код, я использую такой код, как client.send_request = async_w…
2 ответа

Почему обернутая функция в этом декораторе запускается автоматически, и ни один из них не вызывается?

Я изучаю, как использовать декоратор в Python 3. Я набрал эти коды в редакторе и нажал кнопку "Выполнить". log_stat = False def decorator(): def wrapper(func): global log_stat while not log_stat: username = input("username") password = input("passwo…
2 ответа

Один декоратор для 3 разных функций

Я пишу Python API, и у меня есть одна проблема. У меня есть 3 разные функции: func1() -> return only text func2(name) -> return text only but takes parameter func3(name) -> this function create a file "name".txt Теперь у меня проблема с дек…
06 мар '16 в 13:58
0 ответов

Django custom cache_page decorater возвращает ошибку при первом запуске, после чего все в порядке

Я создал кастом cache_page декоратор для моего приложения. Он не работает при первом запуске и выдает ошибку, связанную с промежуточным программным обеспечением: content_encoding = response.get("Content-Encoding", "") AttributeError: 'bool' object h…
1 ответ

Создание псевдонима для декораторов функций в Python

В Python функции-декораторы снова являются функциями, которые являются гражданами первого класса, что создает ожидание гибкого назначения и передачи. В приведенном ниже примере def auth_token_not_expired(function): @auth_token_right def wrapper(req)…
22 ноя '15 в 13:32
1 ответ

Почему эта программа-декоратор выдает неожиданный вывод?

Я написал следующую программу, чтобы обеспечить обертки (декораторы) для двух функций price_report а также sales_report, Я только что назначил обертки для этих функций (последние две строки в коде ниже) без явного вызова price_report() или же sales_…
08 ноя '18 в 04:28
1 ответ

В Python 2.7, как я могу вернуть вычисления без определения переменных в конструкторе?

Мой вопрос о функциональности типа getter/setter в Python. У меня есть класс Week_Of_Meetings, который берет блок данных из моего Календаря Google и выполняет некоторые вычисления на нем. wom = Week_Of_Meetings(google_meetings_blob) Я хочу иметь воз…
28 апр '17 в 10:53
1 ответ

Динамическое наследование в Python через декоратор

Я нашел этот пост, где функция используется для наследования от класса: def get_my_code(base): class MyCode(base): def initialize(self): ... return MyCode my_code = get_my_code(ParentA) Я хотел бы сделать что-то подобное, но с декоратором, что-то вр…
1 ответ

Декоратор - изменение имени переменной

Я изучаю концепции декораторов в Python. В то время как я думаю, что я покрыл много блогов и получил некоторое общее представление о том, как работают декораторы и зачем он нам нужен. При этом я наткнулся на учебник (полностью потерял ссылку на это)…
15 янв '19 в 04:53