面向对象编程的一个重要特点就是数据封装。类的封装包含数据封装、方法封装、属性封装。
# 数据封装,将程序中需要的数据按照统一的格式封装在类型的内部,通过该类型的对象包装使用数据
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
# 方法封装,函数和方法混合开发, 处理和某个数据关联的功能-> 功能代码封装成函数,将函数封装在类型中处理具体功能的方法,就和对应的数据强制关联,方便统一管理维护
def get_name(self):
return self.name
student = Student("张三", "18", get_name())
- 属性封装(重点重点重点)
属性是属于对象的特征,对象的特征是属于对象的数据,对象的数据一般不让外界直接访问。但是默认
self.name
不做任何添加的是公共的public,允许内部和外部的访问。
受保护的protected:在对象成员前面加一个下划线
self._name
,允许类中或子类中都可以进行访问,但外部不可以访问。
私有的private:在成员前面添加两个下划线
self.__name
,私有成员是高级别的封装,只有当前类对象自己能访问,连子类对象也不能访问到这个数据。