封装是面向对象编程的核心概念之一,通过将数据与行为绑定,实现对对象内部状态的保护。Python 中的访问控制主要依赖于命名约定,而非严格的权限系统。

1. 访问控制级别 📊

  • 公开属性:直接访问,如 self.name
  • 受保护属性:单下划线前缀,如 self._age(约定非强制)
  • 私有属性:双下划线前缀,如 self.__score(名称改写,外部无法直接访问)

⚠️ 注意:Python 的访问控制仅为约定,实际可通过 _ClassName__attribute 访问私有属性

2. 封装实践示例 📁

class VideoMaterial:
    def __init__(self, title, views):
        self.title = title          # 公开属性
        self._views = views         # 受保护属性
        self.__private_data = "保密"  # 私有属性

    def display_info(self):
        return f"{self.title} - {_VideoMaterial__private_data}"
封装示例

3. 扩展阅读 📚

4. 实用技巧 💡

  • 使用 property 装饰器封装属性访问
  • 通过 __slots__ 优化内存占用
  • 结合 @classmethod@staticmethod 管理类级数据
访问控制