Theo tài liệu Python, "data hiding" là việc cô lập client khỏi (một phần) implementation. Một số object của module có thể internal, invisible và inaccessible cho user. Đây là phương pháp tránh dependency và cung cấp bảo mật đồng thời.
User ứng dụng biết cách sử dụng nhưng không cần biết ứng dụng hoạt động như thế nào. Không cần thiết phải biết. Phương pháp ngăn chặn truy cập nhất định gọi là data hiding.
Trong Python
- Module level: prefix
_(không import bằngfrom M import *) - Class level:
__(name mangling),_(convention) - Property/descriptor: kiểm soát getter/setter
Mục đích: Encapsulation, giảm coupling, bảo vệ invariant, cho phép thay đổi implementation mà không phá vỡ interface.