Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"stuff = stuff or []"

This idiom is baked into the perl community. It's kind of funny to see a Pythonista deciding it's a good idea. (You can tell it hurts him too).



It’s not a good idea in Python. There are legitimate reasons to pass falsy objects as function arguments.


Funnily enough, Perl (since version 5.10) actually has a solution to this. The expression

  $foo // "default"
evaluates to "default" if $foo is undefined, and to $foo otherwise (even if it is defined but false).


I've been programming python for on and off 12 years, and full time for the past 3, and this is the first time I've seen anyone recommending that idiom. So on the whole the python community does not think it's a good idea.


JavaScript, too:

    stuff = stuff||[]
since JavaScript doesn't even support default argument values.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: