Refer https://gist.github.com/1327614#file_truth.py to see if it helps any.
- d On Tue, Dec 6, 2011 at 11:15 AM, Noufal Ibrahim <nou...@gmail.com> wrote: > Vikas BN <vikas...@gmail.com> writes: > > [...] > > > Anyone else encountered this or even have any insights regarding > > this behaviour? I'm using Python2.7.2 on Linux > > if that matters. > > ElementTree's `Element` objects behave this way. The "booleanness" is > not conformant to the rest of Python. > > I don't know if or when it's been fixed but here's how to do it. > http://effbot.org/zone/element.htm#truth-testing > > The method you need to work with is `__nonzero__`[1] if you want `bool` > to work with your classes. > > With Python 2.7.2, The `Element` class defined in > /usr/lib/python2.7/xml/etree/ElementTree.py has > > def __nonzero__(self): > warnings.warn( > "The behavior of this method will change in future versions. " > "Use specific 'len(elem)' or 'elem is not None' test instead.", > FutureWarning, stacklevel=2 > ) > return len(self._children) != 0 # emulate old behaviour, for now > > So, it will evaluate to False only if the number of children is > zero. > > Annoying but when I stumbled on this, it did make me aware of how > consistent Python libraries generally are so that this stuck out. > > [...] > > Footnotes: > [1] http://docs.python.org/reference/datamodel.html#object.__nonzero__ > > -- > ~noufal > http://nibrahim.net.in > > I am a deeply superficial person. -Andy Warhol > _______________________________________________ > BangPypers mailing list > BangPypers@python.org > http://mail.python.org/mailman/listinfo/bangpypers > _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers