Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra giá trị sự thật (Truth Value Testing) trong Python


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