170 похожих чатов

Def logged(fn): from functools import wraps

from datetime import datetime, timezone

@wraps(fn)
def inner(*args, **kwargs):
run_dt = datetime.now(timezone.utc)
result = fn(*args, **kwargs)
print('{0}: called {1}'.format(fn.__name__, run_dt))
return result
return inner

def timed(fn):
from functools import wraps
from time import perf_counter

@wraps(fn)
def inner(*args, **kwargs):
start = perf_counter()
result = fn(*args, **kwargs)
end = perf_counter()
print('{0} ran for {1:.6f}s'.format(fn.__name__, end-start))
return result

return inner

@timed
@logged
def factorial(n):
from operator import mul
from functools import reduce

return reduce(mul, range(1, n+1))

print(factorial(2))

Выше приведены два декоратора к функциям. Обязательно ли, чтобы функции inner каждого декоратора возвращали тот же результат работы функции? Если, например в результат работы функции в одном декораторе я прибавлю единицу, то вызов функции приведет к выдаче результата увеличенного на единицу. То же самое происходит при добавлении к результату единицы, для второго декоратора. Значит ли это, что в своей работе они действуют синхронно?

2 ответов

12 просмотров

давай ты на пастбин выложишь?

декораторы действуют по очереди

Похожие вопросы

Обсуждают сегодня

Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта