# 反射应用 判断属性是否存在 查看属性字典 对象名称点__dict__ hasattr(obj,'属性') 检测属性字典__dict__中有没有查找的属性 如果有返回True 没有返回False getattr(obj,'属性') 检测属性字典 如果有返回函数地址 可以赋值调用 如果没有 报错 getattr(obj,'属性','值') 第三位可以填写值 没有找到返回值 不会报错 setattr(obj,'属性') 添加或修改属性 (实例对象名称,“方法名”,内容) delattr(obj,'属性') 删除属性 (实例对象名称,“方法名”) # 动态添加属性 接收名称=__import__(当前路径.下面的模块) 拿到的只是最高层模块 可以用点调用 以字符串格式导入模块 1. xxx=__import__("模块名“) 返回最高层 2. import importlib xxx=import.import_module("模块名") 返回最下层模块
isinstance(obj,cls) 判断obj是不是clas的实例
issubclass(sub,super) 判断sub是不是super的子类