1. 特殊方法
- 在类中可以定义一些特殊方法也成为魔术方法
- 特殊方法的形式为__xxx__()这种形式
- 特殊方法不需要我们调用,特殊方法会在特定时候自动调用
2.封装
- 原因: 我们需要一种方式来增强数据的安全性
- 封装是面向对象的三大特性之一(剩下的两个为: 继承、多态)
- 封装是指隐藏对象中一些不希望被外部访问到的属性和方法
- 使用封装增加了类的定义的复杂程度,但是也确保了数据的安全
- 对于封装的属性,我们提供了一个getter()和setter()d方法来从类的外部对该属性进行访问和修改
- 作为一种约定,用_func这种格式来指定私有变量或者私有属性
- 封装实质是将对象属性名改为一个外部不知道的名字(_ 类名 __属性名)
property装饰器
- 可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,与所定义的属性配合使用,可以防止属性被修改
- 可以通过@property装饰器来创建一个gertter
@property
def name(self):
return self._name
- 扩展:可以通过@属性名.setter来创建一个setter
@name.setter
def name(self,name):
self._name = name