Home Computers Computer Languages What is True? What is False?
What is True? What is False? PDF Print E-mail
Written by Gordon Tillman   
Thursday, 04 December 2008 15:14

Starting with version 2.2.1, Python got a boolean (bool) datatype. Boolean datatypes have a value of True or False. It also has rules for how it evaluates the "truthy-ness" or "falsy-ness" of other things when used in a context where a boolean value is expected.

  • All numbers are True, except for 0.
  • All strings are True, except for the empty string.
  • All lists, tuples, and dictionaries are True, unless they are empty.
  • None is False

How about other objects in general? Well you can define special methods in classes that you create. Here is one in particular:

__nonzero__(self)

For an explanation of how this method works:

When evaluating x as True or False, Python calls x.__nonzero__(), which should return True or False. When __nonzero__ is not present, Python calls __len__ instead, and takes x as False when x.__len__() returns 0. When neither __nonzero__ nor __len__ is present, Python always considers x True. (Martelli 2006:108)

Martelli, Alex. (2006) Python in a Nutshell. 2nd edition. Sebastopol, CA: O'Reilly.

Last Updated on Thursday, 04 December 2008 19:43