Как сделать замыкание в классе Pyton?
Как реализовать замыкания в классе, есть класс и есть 2 функции само замыкание:
def _open(func):
def actual(self):
def wrapper():
func()
return wrapper
return actual
и функция на которую я пытаюсь его применить:
@_open
def _create(self):
# body
Класс
class MyClass:
...
def _open(func):
def actual(self):
def wrapper():
func()
return wrapper
return actual
@_open
def _create(self):
# body
что я вызываю
my = MyClass(...)
my._create()
и хочу получить : вызов функции обернутый декоратором.
что я получаю : ничего, функция "вызвалась" но не вызвалась
Ответы (1 шт):
Автор решения: вася
→ Ссылка
from functools import wraps
class MyClass:
def _open(func):
@wraps(func)
def wrapper(*args, **kw):
print('open')
return func(*args, **kw)
return wrapper
@_open
def _create(self):
print('create')
my = MyClass()
my._create()