On Thu, 2 Aug 2018 at 10:39, Ken Hilton <kenlhil...@gmail.com> 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 Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/