Conclusions > ------------ > > It appears assignment expressions are no longer the favored solution for > the > "assign and compare" use case. Not one of these five newer languages > supports > them fully, as the language generations from C to C# did. > > Of those that have recognized the use case to be large enough—the solution > has > been rather more limited to the "if" and "while" statements only. Several > folks here have expressed the same desire to confine AE there. Since > Python's > design goals are similar—to be safe and maintainable I'd recommend a > similar > strategy, with the addition of the list comprehension case. Going back to > the > C-style solution seems like the wrong direction. > > Since that would mean this special assignment functionality is not allowed > to > be used everywhere, it alleviates the pressure to make it fit into > with/import/except statements. Furthermore, that frees up the keyword "as" > again, which is Pythonic, short, memorable and has a history of being used > for > various assignment purposes, not to mention a prominent feature of SQL. > > In short, extend the "if/elif", "while", and comprehension to: > > if pattern.search(data) as match: > … > > while read_next_item() as value: > … > > May be best to disallow multiple assignment/conditions for now, but up for > discussion. That leaves comprehensions, which could support a EXPR as NAME > target also: > > filtered_data = [f(x) as y, x/y for x in data] > > or perhaps reuse of the if…as statement to keep it simpler: > > filtered_data = [y, x/y for x in data if f(x) as y] > > That variant might need an extra test if f(x) returns a falsey value, > perhaps > "is not None" on the end. > > Thoughts? > -Mike >
Thanks for the research! Which is the niche, and how influential can it be, to have Python divert from the well learned "assignments must be statements". Cheers! -- Juancarlo *Añez*
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/