On 2018-07-17 19:34, Tim Peters wrote: > > [Barry Warsaw] > > Thanks! I thought it was cute. It was just something that occurred > to me as I was reviewing some existing code. The intent wasn’t to > use `subdirs` outside of the assert statement, but I’m warm to it > because it means I don’t have to do wasted work outside of the > assert statement, or repeat myself in the assert message part. > > > Because the latter ("repeat myself") is probably more tempting, I'll > just note that the "laziness" of using an assignment expression instead > may well have nudged you toward writing _better_ code too. > > assert len(subdirs := list(path.iterdir())) == 0, subdirs > > Assuming the result of list(path.iterdir()) can change over time (seems > very likely), > > assert len(list(path.iterdir())) == 0, list(path.iterdir()) > > _could_ end up both triggering and displaying an empty list in the > exception detail. The assignment-expression version cannot. > Why use len(...) == 0 instead of not(...)? assert not(subdirs := list(path.iterdir())), subdirs
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4