Suggested python feature: allowing except in context maneger

Liste des GroupesRevenir à cl python 
Sujet : Suggested python feature: allowing except in context maneger
De : guruyaya (at) *nospam* gmail.com (Yair Eshel)
Groupes : comp.lang.python
Date : 13. Jun 2024, 12:01:11
Autres entêtes
Message-ID : <mailman.130.1718284531.2909.python-list@python.org>
References : 1
Hello. I read this is a good place to give some suggestions for features in
python. If not, please let me know.

This is an example of a code I normally use in my everyday work:
import logging
try:
  with open('sample_data/READM.md') as f:
    print (len(f.read()))
except FileNotFoundError:
  logging.error("File not found")


As you can see I have 2 levels of indentation, which can add some pain to
the work with the context manager. This code without context manager, can
be replaced by this code:

import logging
try:
  f = open('sample_data/READM.md') as f:
  print (len(f.read()))
except FileNotFoundError:
  logging.error("File not found")
finally:
  f.close()

And while this offers less indentations, it skips the usage of the very
handy context manager.

I would like to suggest an alternative syntax, that will, in a sense, apply
the best of both worlds:

import logging
with open('sample_data/README.md') as f:
  print (len(f.read()))
except FileNotFoundError:
  logging.error("File not")

As "with" applies the behavior of the "try / finally" it feels like a
natural part of this syntax. This could provide a cleaner code.
If this idea is accepted, there are several things that need to be
discussed, like what to do with "else" or "finally" statement following a
context manager. I'm not sure about the proper way to handle this.

With hopes for an even more readable future
Yair
--
בברכה,
יאיר אשל כהנסקי
מתכנת וטכנאי מילים
https://www.inspect-element.net/YouAreHere/#/start

Date Sujet#  Auteur
13 Jun 24 o Suggested python feature: allowing except in context maneger1Yair Eshel

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal