<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><pre>> ><i> A further virtue of 
</i>> ><i> 
</i>> ><i>     self.vertices = vertices or []
</i>> ><i> 
</i>> ><i> and the like is that they coerce falsy parameters of the wrong type to the falsy object of the correct type.
</i>> ><i> E.g. if vertices is '' or 0, self.vertices will be set to [], whereas the ternary expression only tests 
</i>> ><i> 
</i>> ><i> for not-None so self.vertices will be set to a probably crazy value.
</i>> 
> Doesn't seem like a virtue to me, seems like it's probably hiding a bug
> in the calling code, which may have other ramifications. Better to have
> the "crazy value" visible and fail faster, so you can go fix that bug.

> Carl</pre><div><pre>I have to agree. It isn't a "virtue", and it's best not to mask such mistakes. But it *is* a... property of the shorter construct that it's more forgiving, and doesn't have the same semantics.</pre><pre>PS -- My first post, and I lost the "Re:" in the Subject, hence this orphan thread which I'm content to see go no further.</pre><div><br></div></div></body></html>