Paolino wrote: > Nick Coghlan wrote: > >> If an iterator wants to behave like that, the iterator should define >> the appropriate __str__ method. Otherwise, just break it up into >> multiple lines: >> >> write(1, 2, [3,4]) >> write(*(c for c in 'abc')) > > This cannot accept keyword args(I wonder if this is a bug), which makes > it a non compatible solution with the rest of yours. Actually, it's an ordering quirk in the parser - the extended call syntax stuff has to come last in the function call, which means we need to put the keyword arguments at the front: Py> writeln(sep=', ', *(x*x for x in range(10))) 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 I personally believe keyword arguments should be allowed between *args and **kwds at the call site, and keyword-only arguments after * in the function definition, but the current behaviour has never bothered me enough for me to look into what would be required to change it. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com
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