git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]# how to let argument be optional falling back to certain integer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Chris Angelico <rosuav at gmail.com> writes: > On Sun, Jun 21, 2020 at 2:02 AM Boris Dorestand <bdorestand at example.com> wrote: >> >> I just wrote >> >> def f(y, N, k = None): >> k = k or (N - 1) >> return k >> >> I was surprised to find out that 0 == False, so f(7, 31, 0) produces 31. >> >> I'd like 0 to be a valid choice for k. >> >> How do you guys let k be an optional argument such that it defaults to >> N - 1? >> > > The easiest way is to explicitly check for None. > > if k is None: k = N - 1 Got it. That's clear code. > Zero being false shouldn't be a surprise. If None can count as false, > then so should other "emptiness" values. (Remember, the canonical > falseness value is False, not None.) This is true. I have written 0 as false in C so many times. But clearly for me times have changed... I now look at numbers as a thing in their own special class not to be confused as truth-values. (So much so that I fell for this.) But I confess I still think of numbers as all TRUE. (Even zero!) Anyway, I kind of replied just to thank you all for the great group this is. ChrisA, I don't know how can keep up with this newsgroup, but you do. This is crazy. Years go by and when I come back, there you are still. You're priceless.

- Prev by Date:
**how to let argument be optional falling back to certain integer** - Next by Date:
**how to let argument be optional falling back to certain integer** - Previous by thread:
**how to let argument be optional falling back to certain integer** - Next by thread:
**how to let argument be optional falling back to certain integer** - Index(es):