Câu hỏi phỏng vấn Python
Câu hỏi

Tại sao private methods trong Python lại không thực sự private?

Câu trả lời

Trong Python, các phương thức và thuộc tính được coi là "riêng tư" (private) không thực sự bị giới hạn truy cập như trong một số ngôn ngữ lập trình khác như Java hay C++. Python không hỗ trợ việc kiểm soát truy cập một cách nghiêm ngặt thông qua các từ khóa như private hay protected. Thay vào đó, Python sử dụng một quy ước đặt tên để chỉ ra rằng một thuộc tính hoặc phương thức nên được coi là riêng tư và không nên truy cập trực tiếp từ bên ngoài lớp.

Quy ước Đặt Tên:

  • Một dấu gạch dưới (_) ở đầu tên: Điều này chỉ ra rằng thuộc tính hoặc phương thức là dành cho sử dụng nội bộ và không nên truy cập từ bên ngoài lớp, nhưng điều này chỉ là một quy ước và không ngăn chặn việc truy cập.

  • Hai dấu gạch dưới (__) ở đầu tên: Python sử dụng một kỹ thuật gọi là name mangling cho các thuộc tính hoặc phương thức bắt đầu bằng hai dấu gạch dưới. Điều này có nghĩa là tên của chúng được thay đổi một cách tự động để bao gồm tên lớp, làm cho việc truy cập trực tiếp từ bên ngoài lớp trở nên khó khăn hơn. Tuy nhiên, vẫn có thể truy cập chúng nếu bạn biết tên đã được thay đổi.

Ví dụ:

class MyClass:
    def __init__(self):
        self._internal_attribute = "This is an internal attrib...
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

*args**kwargs là gì? Tại sao chúng ta sử dụng chúng?

middle

Điểm khác của nhau phương thức append()extend() của list là gì?

senior

set() được implement nội bộ như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào