反射

1.issbuclass/type/isinstance
  1.issbuclass() 判断第一个参数是否为第二个参数的后代
  2.type() 给出数据类型 给出创建这个对象的类
    比较精准的给出对象的类
  3.isinstance 判断是否为某种变量 按照语义走
    子类的对象可以当做父类类型判断 往上层找
2.如何分辨函数和方法
  在外面定义的函数:一定是函数
  实例方法 对象.方法 方法 类名.方法 类名
  静态方法都是函数
  类方法都是方法
  from types import FunctionType,MethodType #这两个是判断标准
3.反射
  1.getattr(master,xxxx)
    从xxx对象或者模块中找xxxx功能(字符串)
    找不来的有可能是变量或者属性
    callable ===> 是否可以被调用
  2.hasattr(master,val) 反射

    你先输入,我再根据你输入的去查找
  3.面向对象的反射
  4.setattr(master,"test",xxx) #讲test换成xxx
    setattr(p,"age",18) #设置属性 有就替换 没有就添加
    慎用===>容易被骂娘
  5.delattr(master,xxx) 删除

原文地址:https://www.cnblogs.com/d9e84208/p/10597589.html