魔法方法
__dict__动态绑定属性
功能:
- 查当前属性,父类的查不到
- 返回的是字典,可以对它增删改,就是动态改属性
要点: - 当为数据描述符是,get__优先级高于__dict
当为非数据描述符时,dict__优先级高于__get
__enter__和__exit__用来生成上下文管理器
_enter_
- 必须返回self return self
_exit_
- _exit_(异常类型,异常值,追溯信息) 三个参数必须加上
- 如果加了return True 有异常出现的话不会报错
作用
- 自动完成清理工作,无须手动干预
- 在需要管理一些资源比如文件,网络连接和锁的编程环境中,可以在__exit__中定制自动释放资源的机制,你无须再去关系这个问题,这将大有用处
简化Demo()语句,添加装饰器,但是只能装在函数上
__get__与__set__属性描述符-----给类属性添加控制条件
定义
- 属性描述符是一个强大的通用协议,它是properties、methods、static methods、class methods、和super()调用原理
- 属性描述符是实现了特定协议的类
- 实现了__get__、__set__或__delete__中任意一个方法的类,称之为属性描述符。属性描述符可以控制属性操作时的一些行为。
- 只要具有__get__方法的类就是描述符类。是非数据描述符
如果一个类中具有__get__和