может ли кто -нибудь объяснить мне, если это задумано (и почему):
Если вы положите return inkecken Contectustman, не более Codeman . Повышен.
Код: Выделить всё
from contextlib import contextmanager
@contextmanager
def test():
try:
print("inside the contextmanager")
yield
finally:
print("exiting contextmanager")
return # This shomehow shadows any exception raised within the contextmanager
with test():
try:
raise RuntimeError("ASDF")
except Exception as ex:
print(f"there's an {ex} exception... lets raise it again!")
raise ex
print("i don't care about exceptions")
< /code>
Если я запускаю это, я получаю следующее: < /p>
>>> inside the contextmanager
>>> there's an ASDF exception... lets raise it again!
>>> exiting contextmanager
>>> i don't care about exceptions
Подробнее здесь: https://stackoverflow.com/questions/796 ... nally-clau