封装是面向对象编程的核心概念之一,通过将数据与行为绑定,实现对对象内部状态的保护。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
管理类级数据