Quản lý truy cập dữ liệu: thuộc tính riêng tư

Lập trình hướng đối tượng trong Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Mọi dữ liệu lớp đều là public

chúng ta đều là người lớn ở đây

Lập trình hướng đối tượng trong Python

Hạn chế truy cập

  • Quy ước đặt tên
  • Dùng @property để tùy biến truy cập
  • Ghi đè __getattr__()__setattr__()
Lập trình hướng đối tượng trong Python

Quy ước: thuộc tính nội bộ

obj._att_name, obj._method_name()

  • Bắt đầu bằng một _ → "nội bộ"
  • Không thuộc public API
  • Với người dùng lớp: "đừng đụng vào"
  • Với người phát triển lớp: dùng cho chi tiết triển khai, hàm trợ giúp…

df._is_mixed_type , datetime._ymd2ord()

Lập trình hướng đối tượng trong Python

Quy ước: thuộc tính giả riêng tư

obj.__attr_name , obj.__method_name()

  • Bắt đầu nhưng không kết thúc bằng __ → "giả riêng tư"
  • Không được kế thừa
  • Xáo trộn tên (name mangling): obj.__attr_name được hiểu là obj._MyClass__attr_name
  • Dùng để tránh trùng tên trong các lớp kế thừa

 

Ký tự __ ở đầu cuối chỉ dùng cho các phương thức dựng sẵn của Python (__init__(),__repr__())!

Lập trình hướng đối tượng trong Python

¡Vamos a practicar!

Lập trình hướng đối tượng trong Python

Preparing Video For Download...