[Python-Dev] bool(container) [was bool(iter([])) changed between 2.3 and 2.4]

Jim Jewett jimjjewett at gmail.com
Fri Sep 30 17:42:15 CEST 2005


Python doesn't worry about a precise boolean object, it
distinguishes between something and nothing.

Is there anything left?" is a pretty good analogy for iterators.

It isn't always cheaply available, and having might
encourage poor style -- so iterators are going back
to the default for non-containers of always True.

How general strong is this default-to-true rule?

If I submit a documentation patch, should I say that
numbers, lists, strings, dictionaries, and tuples are
a special case, or should I just warn that some
container-like objects (including iterators) are always
True?

More specific question:

A Queue.Queue is always true.  Should I submit a
bug patch or add it as a beware of custom classes
example?

    def __nonzero__(self):
        return not self.empty()


More information about the Python-Dev mailing list