Assertion trong Python



Cách đơn giản nhất để nghĩ về một Assertion là xem nó giống như một lệnh raise-if-no. Một biểu thức được kiểm nghiệm, và nếu kết quả là false, thì một exception được tạo ra.

Một Assertion là một sanity-test mà bạn có thể bật hoặc tắt khi bạn được thực hiện với sự kiểm nghiệm chương trình của bạn.

Assertion được mang bởi lệnh assert. Các lập trình viên thường đặt các Assertion tại phần đầu của một hàm để kiểm tra tính hợp lệ của input, và sau một lời gọi hàm để kiểm tra tính hợp của output.

Lệnh assert trong Python

Khi bắt gặp lệnh assert, Python ước lượng biểu thức đi kèm, mà hy vọng rằng là true. Nếu biểu thức là false, thì Python tạo một ngoại lệ là AssertionError.

Dưới đây là cú pháp cho lệnh assert:

assert bieu_thuc[, cac_tham_so]

Nếu Assertion thất bại, Python sử dụng cac_tham_so là tham số cho AssertionError. Các ngoại lệ AssertionError có thể được bắt và được xử lý giống như bất kỳ ngoại lệ khác bởi sử dụng lệnh try-except, nhưng nếu không được xử lý thì chúng sẽ kết thúc chương trình và sẽ tạo một traceback.

Ví dụ

Dưới đây là một hàm để chuyển đổi từ độ K thành độ F.

 

def ChuyenKF(Nhietdo):
   assert (Nhietdo >= 0),"Lanh hon do khong tuyet doi!"
   return ((Nhietdo-273)*1.8)+32

print ChuyenKF(273)
print int(ChuyenKF(505.78))
print ChuyenKF(-5)

Khi code trên được thực thi sẽ cho kết quả:

32.0
451
Traceback (most recent call last):
  File "test.py", line 9, in <module>
    print ChuyenKF(-5)
  File "test.py", line 4, in ChuyenKF
    assert (Nhietdo >= 0),"Lanh hon do khong tuyet doi!"
AssertionError: Lanh hon do khong tuyet doi!