Bên cạnh việc sử dụng nó như một trình giữ chỗ cho các chức năng chưa được thực hiện, pass
có thể hữu ích trong việc điền vào một câu lệnh if-other ("Rõ ràng là tốt hơn so với ẩn.")
def some_silly_transform(n):
# Even numbers should be divided by 2
if n % 2 == 0:
n /= 2
flag = True
# Negative odd numbers should return their absolute value
elif n < 0:
n = -n
flag = True
# Otherwise, number should remain unchanged
else:
pass
Tất nhiên, trong trường hợp này, người ta có thể sẽ sử dụng return
thay vì gán, nhưng trong trường hợp mong muốn đột biến, điều này hoạt động tốt nhất.
Việc sử dụng pass
ở đây đặc biệt hữu ích để cảnh báo những người duy trì trong tương lai (bao gồm cả chính bạn!) Không được đặt các bước dư thừa bên ngoài các tuyên bố có điều kiện. Trong ví dụ trên, flag
được đặt trong hai trường hợp được đề cập cụ thể, nhưng không phải trong trường hợp else
. Nếu không sử dụng pass
, một lập trình viên tương lai có thể chuyển flag = True
sang bên ngoài điều kiện, do đó thiết lập flag
trong mọi trường hợp.
Một trường hợp khác là với chức năng soạn sẵn thường thấy ở dưới cùng của tệp:
if __name__ == "__main__":
pass
Trong một số tệp, có thể tốt hơn là để lại ở đó pass
để cho phép chỉnh sửa dễ dàng hơn sau đó và để làm rõ rằng không có gì được dự kiến sẽ xảy ra khi tệp tự chạy.
Cuối cùng, như đã đề cập trong các câu trả lời khác, có thể hữu ích khi không làm gì khi ngoại lệ bị bắt:
try:
n[i] = 0
except IndexError:
pass
pass
sẽ hữu ích khi bạn muốn ghi đè một phương thức trong một lớp con để không làm gì cả.