The bool() Method
The bool()
method
Python offers a method named bool()
. This method evaluates the value passed to it as a parameter as either True
or False
.
Syntax
bool(add_parameter_here)
Simply put, it converts any object to one of the two boolean values.
Conditions for evaluating values
The bool()
method will evaluate all values as True
as long as they do not fit the following criteria:
1. False
or None
values are given
The code below will evaluate to False
, as it contains False
and None
.
print(bool(False))print(bool(None))
The code below will evaluate to True
.
print(bool(True))print(bool("Hello"))
2. A 0 value of any numeric type (int, float, decimal, etc.)
The code below will evaluate to False
, as it contains zero values.
print(bool(0))print(bool(0.0))
The code below will evaluate to True
.
print(bool(1))print(bool(3.14))
3. An empty sequence or collection is given ((), {}, or [])
The code below will evaluate to False
due to the empty collections.
print(bool(()))print(bool({}))
The code below will evaluate to True
as the collections are not empty.
print(bool([1, 2, 3]))print(bool((0, 1, 3)))
4. If an empty string ''
is given
The code below will evaluate to False
.
print(bool(''))
The code below will evaluate to True
.
print(bool('Non-empty string'))
5. Overriding the bool()
method
Objects or classes that override the bool()
method can explicitly define whether they want to be evaluated as true or false.
class MyObject:def __bool__(self):return True
Because our custom class has its own bool()
implementation, which is made to return True
, the code below will return True
.
class MyObject:def __bool__(self):return Truecustom_instance = MyObject()print(bool(custom_instance))
We can also change the implementation to return False
.
class MyObject:def __bool__(self):return Falsecustom_instance = MyObject()print(bool(custom_instance))