Как украсить методы __enter__ и __exit__ экземпляра?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как украсить методы __enter__ и __exit__ экземпляра?

Сообщение Anonymous »

Я хотел бы использовать декоратор деко , чтобы изменить методы __enter __ и __exit __ . Код запускается, но обертка не выполняется в разделе с . Найдите фактический вывод ниже, за которым следует ожидаемый вывод и, наконец, код.In __init__
-------------------
In __enter__
-------------------
In wrapper
Blah, blah, blah
-------------------
In __exit__
< /code>
Ожидаемый вывод: < /p>
In __init__
-------------------
In wrapper
In __enter__
-------------------
In wrapper
Blah, blah, blah
-------------------
In wrapper
In __exit__
< /code>
class contMgr():
def __init__(self):
print("In __init__")
pass

def __enter__(self):
print("In __enter__")
return self

def __exit__(self, exc_type, exc_val, exc_tb):
print("In __exit__")
pass

def __call__(self, *args, **kwargs):
print("In __call_")

def brol():
print("brol")

def deco(func):
def wrapper(*args,**kwargs):
print("In wrapper")
result = func(*args, **kwargs)
return result

return wrapper

@deco
def test():
print("Blah, blah, blah")

mgr = contMgr()
mgr.__enter__ = deco(mgr.__enter__)
mgr.__exit__ = deco(mgr.__exit__)
print("------------------------")
with mgr:
print("------------------------")
test()
print("------------------------")


Подробнее здесь: https://stackoverflow.com/questions/795 ... ce-methods
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как украсить методы __enter__ и __exit__ экземпляра?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как украсить методы __enter__ и __exit__ экземпляра?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Разница в системе. Выход (0), System.Exit (-1), System.Exit (1) в Java
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ограничение обхода через конкретные проходы для «Enter-Exit с той же стороны» на графике для наметить пути?
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ограничение обхода через конкретные проходы для «Enter-Exit с той же стороны» на графике для наметить пути?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»