Dấu gạch dưới đơn
Các tên, trong một lớp, với dấu gạch dưới ở đầu về cơ bản là để chỉ ra cho các lập trình viên khác biết rằng thuộc tính hoặc phương thức được dự định là riêng tư.
Bạn nên sử dụng dấu gạch dưới đơn cho các biến nửa riêng tư và dấu gạch dưới kép cho các biến hoàn toàn riêng tư.
Để trích dẫn PEP-8 -
_single_leading_underscore:chỉ số "sử dụng nội bộ" yếu. Ví dụ. from M import * không nhập các đối tượng có tên bắt đầu bằng dấu gạch dưới.
Ví dụ
Đoạn mã sau cho thấy sự khác biệt giữa tiền tố gạch dưới kép và đơn
class MyClass(): def __init__(self): self.__fullrprivate = "World" self._semiprivate = "Hello" mc = MyClass() print mc._semiprivate print mc.__fullprivate
Đầu ra
Traceback (most recent call last): Hello File "C:/Users/TutorialsPoint1/~_1.py", line 8, in <module> print mc.__fullprivate AttributeError: MyClass instance has no attribute '__fullprivate'