Dấu gạch dưới _ có nhiều ý nghĩa đặc biệt trong Python tùy ngữ cảnh.
1. Lưu giá trị biểu thức cuối trong REPL
>> 20
20
>>> _
20
>>> _ + 3
23
2. Bỏ qua giá trị (unpacking)
x, _, y = (1, 2, 3)
# x=1, y=3, giá trị 2 bị bỏ qua
for _ in range(5):
print("Hello") # biến lặp không dùng
3. Quy ước đặt tên biến/hàm
| Kiểu | Ví dụ | Ý nghĩa |
|---|---|---|
| single_trailing_ | class_ | Tránh trùng từ khóa (class, def...) |
| _single_leading | _private_var | Quy ước: private (internal use) |
| __double_leading | __method | Name mangling: _ClassName__method |
| __double_leading_trailing__ | __init__ | Magic/dunder methods (built-in protocol) |