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

Подскажите, а как генератор, завернутый в декоратор заставить выдавать в

правильном порядке значения и почему так происходит?

Код:
def Decorator(func):
log.info('start...')
def wrapper(args):
return func(args)
log.info('stop...')
return wrapper

В итоге получается такой вывод:
start...
stop....
И тут объекты генератора уже выводятся (мне надо чтобы они между start и stop выводились)

13 ответов

8 просмотров
XYZ- Автор вопроса

А, вроде дошло - сейчас кое-что попробую

Все правильно работает. Выполняется функция-декоратор, выводит что-то и завершает работу, возвращая wrapper, а потом уже и он вызывается. Вероятно, ты хотел вывод делать изнутри wrapper'а, вставив вызов обернутой функции посередине?

XYZ- Автор вопроса
Vitaliy Derbentsev
Все правильно работает. Выполняется функция-декора...

Ага, уже понял. Правда еще не придумал как сделать чтобы выполнялись начальные и конечные инструкции в обернутом генераторе

XYZ- Автор вопроса
Vitaliy Derbentsev
Все правильно работает. Выполняется функция-декора...

изнутри wrapper'a он не выведет "stop", поскольку раньше вернет результат функции. Как такое правильно реализуется, можешь подсказать?

XYZ
изнутри wrapper'a он не выведет "stop", поскольку ...

Ну, так сохрани результат функции в переменную, доделай, что нужно и верни переменную

XYZ- Автор вопроса
Vitaliy Derbentsev
Ну, так сохрани результат функции в переменную, до...

То же самое получается: def Decorator(func): print('start...) def wrapper(*args, **kwargs): result = func(*args, **kwargs) print('stop...') return result return wrapper Но пока что выключу тг, попробую сам подумать - а потом прочитаю ответ :)

XYZ
То же самое получается: def Decorator(func): pri...

Ок прост тут что то многовато вариантов как можно понять что именно Вам надо) если что пинганите меня, у меня несколько вариантов накидалось (хотел убедиться что правильно понимаю как оно работает)

XYZ
То же самое получается: def Decorator(func): pri...

Что получается и что должно получиться в итоге?

XYZ- Автор вопроса
Vitaliy Derbentsev
Что получается и что должно получиться в итоге?

Должна получиться очень простая вещь: в декораторе идет запуск драйвера, выполняются генераторы, потом идет остановка драйвера :)

XYZ- Автор вопроса
XYZ
Должна получиться очень простая вещь: в декораторе...

Сек. Так действия должны производиться не по выдаче генератора, а по началу/завершению итераций через его значения?

XYZ- Автор вопроса
Vitaliy Derbentsev
Сек. Так действия должны производиться не по выдач...

Да. Уже выкинул декоратор из своего кода и делаю по-другому чуть-чуть :)

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
1
Подскажите пожалуйста, а я могу вот такую штуку использовать? rpc, только реализованное в реббите https://www.rabbitmq.com/tutorials/tutorial-six-php ( или https://habr.com/ru...
Artyom
11
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Всем привет! У меня почему-то по-разному отображается TListView в Debug и Release режимах (FireMonkey)! При запуске под Win приложения TListView заливается программо. в Debug ...
Александр COM
8
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
Карта сайта