<div dir="auto"><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">def stringify(self, sep):<br>
     return sep.join(str(i) for i in self)<br></blockquote></div></div><div dir="auto">= map(sep.join(map(str, self))</div><div dir="auto"><br></div><div dir="auto">However some folks want:</div><div dir="auto"><br></div><div dir="auto">def stringify(*args, *, sep:str=SomeDefault):</div><div dir="auto">    return sep.join(map(str, args))</div><div dir="auto"><br></div><div dir="auto">In order to have:</div><div dir="auto"><br></div><div dir="auto">>>> stringify(1, 2, "3", sep="-")</div><div dir="auto">1-2-3</div><div dir="auto"><br></div><div dir="auto">And I agree about the formatting, we know that str(x) and format(x) are synonyms so I'd suggest:</div><div dir="auto"><br></div><div dir="auto"><div dir="auto" style="font-family:sans-serif">def stringify(*args, *, sep:str=SomeDefault, fmt=''):</div><div dir="auto" style="font-family:sans-serif">    return sep.join(format(x, fmt) for x in args)</div></div><div dir="auto"><br></div><div dir="auto">And the implicit call to str is really not surprising for a function called stringify IMO</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If you want a language designed specifically for text processing, use Perl.<br></blockquote></div></div><div dir="auto">True ! However typing python -cp "1+1" is really tempting...</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Python is deliberately strongly typed, so that:<br>
<br>
2 + “2”<br>
<br>
Raises an error. Why should:<br>
<br>
“”.join([2, “2”]) not raise an error as well?<br></blockquote></div></div><div dir="auto">I agree</div></div>