Ta có thể dùng bất kỳ đối tượng nào để kiểm tra giá trị sự thật. Bằng cách cung cấp điều kiện trong câu lệnh if hoặc while, việc kiểm tra được thực hiện.
Cho đến khi phương thức __bool__() của lớp trả về False hoặc phương thức __len__() trả về 0, ta coi giá trị sự thật của đối tượng đó là True.
Giá trị hằng là False khi nó là False hoặc None.
Khi biến chứa các giá trị như 0, 0.0, Fraction(0, 1), Decimal(0), 0j, thì nó biểu thị giá trị False.
Sequence rỗng '', [], (), {}, set(0), range(0) có giá trị sự thật là False.
Giá trị sự thật 0 tương đương False và 1 tương đương True.
Ví dụ mã
class A:
# Lớp A không có __bool__, nên giá trị mặc định là True
def __init__(self):
print('This is class A')
a_obj = A()
if a_obj:
print('It is True')
else:
print('It is False')
class B:
# Lớp B có __bool__ trả về False
def __init__(self):
print('This is class B')
def __bool__(self):
return False
b_obj = B()
if b_obj:
print('It is True')
else:
print('It is False')
myList = [] # Không có phần tử, trả về False
if myList:
print('It has some elements')
else:
print('It has no elements')
mySet = (10, 47, 84, 15) # Có phần tử, trả về True
if mySet:
print('It has some elements')
else:
print('It has no elements')
Kết quả
This is class A It is True This is class B It is False It has no elements It has some elements