On 21Jun2023 03:01, Greg Ewing <greg.ew...@canterbury.ac.nz> wrote:
On 20/06/23 7:36 pm, Barry wrote:
I have some APIs that do return None or a list.
The None says that a list is not available and that the caller is
responsible with dealing in a application-domain specific with
with that situation.
In that case, the caller should probably be checking for
None rather than blindly trying to iterate over the result.
I wasted some time the other evening on an API which returned a string
or None. My own API, and the pain it caused tells me that that API
design choice isn't good (it's an automatic attribute based on a tag,
returning None if the tag isn't there). My experience so far is that it
_looks_ handy so that you can safely say "foo.bar" all the time, but as
soon a you do something with the value you're in for a world of
None-checking.
I'm rethinking that choice right now. Just the other day I removed a
setting in a related class which provided an automatic default value
because, again, while handy for careless use it caused hard to debug
problems because the default would flow out the call chain until it was
unsuitable, making the cause hard to trace.
And of course I'm very -1 on None acquiring iteration or other features.
Fail early, fail often!
Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list