附录 面向对象
补充
面向对象三大特征介绍
- 封装: 隐藏对象的属性和实现细节,只对外提供必要的方法,就像直接调用父类方法一样。通过私有属性、私有方法的方式,实现封装。
- 继承:子类继承父类
- 多态:同一个方法调用 由于对象不同产生不同的行为。同样是休息,有人喜欢睡觉,有人喜欢玩游戏。。。
私有属性和私有方法(实现封装)
- 两个下划线开头的属性是私有的(private),其他为共有的(public)
- 类内部可以访问私有属性(方法)
- 类外部不能直接访问私有属性(方法)
- 类外部可以通过“_类名_私有属性(方法)名” 访问私有属性(方法)
- 方法本质上也是属性
使用dir(实例),可以看到内部的属性
@property装饰器
将一个方法的调用方式变成“属性调用”。用来给我们的属性增加对应的get和set方法。
普通的写法
方法没有重载
在其他的语言 可以定义多个重名的方法,只要形参数不一致 就不一样的方法。
只要保证方法签名唯一即可。但是python中方法的参数没有类型,就没必要重载了。
如果我们在类中多个重名的方法, 只有最后一个方法有效
设计模式----单例模式
核心是是一个类只有一个实例,并且提供一个访问该实例的全局访问点。
就不用那么多实例对象,就一个得了。
就比如某个配置文件,用到了就读一次,效率很低,可创建这个配置文件的类,只生成一个实例对象,反对调用也就只有这一个,降低开销。