On Thu, 2 Aug 2018 at 10:39, Ken Hilton <[email protected]> wrote:
> With expressions allow using the enter/exit semantics of the with statement
> inside an expression context. Examples:
>
> contents = f.read() with open('file') as f #the most obvious one
> multiplecontents = [f.read() with open(name) as f for name in names]
> #reading multiple files
>
> I don't know if it's worth making the "as NAME" part of the with mandatory in
> an expression - is this a valid use case?
>
> data = database.selectrows() with threadlock
>
> Where this would benefit: I think the major use case is `f.read() with
> open('file') as f`. Previous documentation has suggested
> `open('file').read()` and rely on garbage collection; as the disadvantages of
> that became obvious, it transitioned to a method that couldn't be done in an
> expression:
That use case is satisfied by pathlib:
Path('file').read_text()
see https://docs.python.org/3.7/library/pathlib.html#pathlib.Path.read_text
Are there any other use cases? I don't see any real advantage here
other than the non-advantage of being able to write one-liners.
Paul
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/