Nội dung phần này:
- Comparision
- Hashing and Equality
- Boolean
Danh sách đầy đủ bài học ở đây.
03. So sánh (comparision)
Chúng ta có các toán tử ở dưới:
__lt__: less than <
__le__: less or equal <=
__eq__: equal ==
__ne__: not equal !=
__gt__: greater than >
__ge__: greater than or equal >=
Ví dụ minh họa sẽ được thêm vào sau.
04. Hashing and Equality
Một object được gọi là hashable
nếu nó có một giá trị hash
hoàn toàn không thay đổi trong thời gian tồn tại của nó.
Nếu __eq__
được thêm vào class thì __hash__
sẽ ngầm được set về None nếu __hash__
không có trong class.
Về mặc định, nếu không có ghi đè:
__hash__
sử dụng id của object.__eq__
sử dụngidentity comparision
(đó làis
)
Ví dụ minh họa sẽ được thêm vào sau.
05. Boolean
Chúng ta nhận thấy rằng:
- Bất cứ số nào không phải là 0 thì sẽ trả về True, còn 0 thì trả về False.
- Một collection rỗng (list, tuple, dictionary…) sẽ trả vè False, còn lại là True.
Thực sự thì một object mặc định sẽ có giá trị True, chúng ta có thể ghi đè điều này sử dụng __bool__
.
Nếu __bool__
không tồn tại, Python sẽ dùng __len__
, nếu trả về 0 thì là False, còn lại là True.
Ví dụ minh họa sẽ được thêm vào sau.
(Sẽ viết và cập nhật tiếp)