[Python-Dev] bool(container) [was bool(iter([])) changedbetween 2.3 and 2.4]
Fredrik Lundh
fredrik at pythonware.com
Fri Sep 30 18:29:58 CEST 2005
Guido van Rossum wrote:
> "Containerish" behavior isn't enough to warrant empty <--> false; in
> some sense every object is a container (at least every object with a
> __dict__ attribute) and you sure don't want to map __len__ to
> self.__dict__.__len__...
the ElementTree experience shows that doing
def __getitem__(self, index):
return self.items[index]
def __len__(self):
return len(self.items)
def __nonzero__(self):
return True
is sometimes a good idea, even for objects that are mostly sequences.
(ET 1.2.X lacks the __nonzero__ method, and accidentally treating
elements with no subelements as if the element itself doesn't exist is by
far the most common gotcha in ET code).
</F>
More information about the Python-Dev
mailing list