28 多态和反射

Posted on 2019-02-21 20:51  九块九  阅读(79)  评论(0)    收藏  举报

多态:

  即:不同对象可以响应同一个方法(名称相同) 产生不同的结果

  对象的使用者 无需关心具体的实现

鸭子类型:

  python中没有强制的限制,必须做什么,python中崇尚鸭子类型

  如果一个对象,长得像鸭子,叫声像鸭子,即他就是鸭子

  即我们在变写类的时候,不需要强制的使用,接口来限制类中必须实现的方法

内置方法

  isinstance(obj,class) # 判断一个对象是不是一个class的实例,即判断一个对象的 属性

  issubclass(A,B) #判断A类是不是B的子类

内置方法str和del

__str__ 可以用于定制对象的打印格式,在print对象的时候,自动触发

__del__ 对象从内存中删除时自动触发执行

  __del__就是一个通知函数,即del中没有函数代码,即对象也会被删除

 

反射:一个对象具备可以修改自身属性及方法的能力

  hasattr    判断某个对象是否存在某个属性

  getattr     从对象中获取某个属性

  setattr    设置或者修改对象的某个属性

  delattr      删除对象的某个属性