The __bool__() method
Python has a pleasant definition of falsity. The reference manual lists a large number of values that will test as equivalent to False
. This includes things such as False
, 0
, ''
, ()
, []
, and {}
. Most other objects will test as equivalent to True
.
Often, we'll want to check for an object being "not empty" with a simple statement as follows:
if some_object: process( some_object )
Under the hood, this is the job of the bool()
built-in function. This function depends on the __bool__()
method of a given object.
The default __bool__()
method returns True
. We can see this with the following code:
>>> x = object() >>> bool(x) True
For most classes, this is perfectly valid. Most objects are not expected to be False
. For collections, however, ...
Get Mastering Object-oriented Python now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.