1. 特殊方法
- 在类中我们可以定义一些特殊方法也称为魔术方法,形如__开头__
- 特殊方法不需要我们自己调用,特殊的方法会在特定的时候自动调用
- 先执行类中的代码再执行特殊方法
- __init __() 负责初始化实例,可以用来向新创建的对象初始化属性
- __new __()用于创建实例,可以用来创建一个新得对象
- __init __()方法在__new __()方法创建实例后
2. 封装
- 封装的引入
- 需要一种方式来增强数据的安全性
- 1.属性不能随意修改
- 2.属性不能改为任意值
- 封装就是指隐藏对象汇总的一些不希望被外部访问的属性和方法
- 封装
- 面向对象的三大特性之一
- 提供了一个getter()和setter()方法
- 特点1 隐藏属性名,使调用者无法随意修改对象中的属性
- 特点2 很好的控制了属性的只读和修改
- 特点3 提供了数据的验证以及准确性
- 特效4 同时可以做一些其他处理
- 可以为对象属性使用双__的方式来封装__xxx,双下划线的属性是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问,隐藏属性只不过是python自动给属性起了另外的一个名字,这个名字叫做_类名__属性名
- _属性名—>类名属性名name–>
- 使用__开头的属性,实际上我们依然可以在外部访问,所以这种方式一般不用,一般对属性进行封装都是以_开头的方式
3 property装饰器
- 装饰器会将方法转换为相同名称的只读属性