On Mon, Mar 30, 2020 at 3:19 PM Serhiy Storchaka <storchaka@gmail.com> wrote:
31.03.20 00:27, Jimmy Thrasibule пише:
> In my situation, I would like to mix the `with` statement with `else`.
> In this case I would like that if no exception is raised within the
> `with` to run the `else` part.

It is easy. You do not need "else".

with my_context():
      do_something_sensitive()
print("We're all safe.")

In case Serhiy's answer wasn't clear: context managers can be written to handle exceptions (within their context) in any way you see fit.

that is: the method:

__exit__(self, exc_type, exc_value, exc_traceback):

get the exception, and information about it, of one is raised, so you can handle it anyway you want.

-CHB

 
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/M7HVLCGQ6REMHKGZVZPIYTJGLN6WKN5F/
Code of Conduct: http://python.org/psf/codeofconduct/


--
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython