1.isinstance/type/issubclass

1.type

显示对象的类,但是不会显示他的父类

2.isinstance

会显示的对象的类,也会去找对象的父类,填写参数是对象,类isinstance(对象,类)如果对象属于后面的类会报Ture,反之False

3.issubclass

与isinstance 相似不过他填写的参数是类与类

4.总结

来说:type(对象)不会认为子类是一种父类类型;isinstance(对象,类)会认为子类是一种父类类型。

2.反射(hasattr,getattr,setattr,delattr)

  • 反射就是通过字符串来操作类或者对象的属性

  • 反射本质就是在使用内置函数,其中反射有以下四个内置函数:

    1. hasattr:判断一个方法是否存在与这个类中
    2. getattr:根据字符串去获取obj对象里的对应的方法的内存地址,加"()"括号即可执行
    3. setattr:通过setattr将外部的一个函数绑定到实例中
    4. delattr:删除一个实例或者类中的方法

1.hasattr

用法: print(hasattr(对象,对象的方法或者特征),)后面内容必须为字符串的格式,如果有返回True,没有返回False

2.getattr

简单的用法:print(getattr(对象,对象的方法或者特征)),后面内容必须为字符串的格式,后面的内容必须对象有的,也返回其特征对应的内容

详细的用法:

getattr(实例化的类, '属性或者方法','没有找到属性或者方法返回的内容')

  • 如果没有填写没有找到属性或者方法的返回内容他会抛异常

  • 如果到了属性或者方法,其的返回值就是他的属性或者方法

    示例

class A:
def __init__(self):
self.name = 'nick'
# self.age='18'
def method(self):
print("method print")
return 111
a = A()
print(getattr(a, 'name','not find')) # 如果a 对象中有属性name则打印self.name的值,否则打印'not find'
print(getattr(a, 'age','not find')) # 如果a 对象中有属性age则打印self.age的值,否则打印'not find'
print(getattr(a, 'method', 'default')) # 如果有方法method,否则打印其地址,否则打印default
print(getattr(a, 'method', 'default')()) # 如果有方法method,运行函数并打印接受他的返回值否则打印default

3.seattr

用法:setattr(YwY,',对象的方法或者特征,对应的值) , 如果没有该特征或者方法会新增,如果有则替换

4.delattr

用法:delattr(YwY,',对象的方法或者特征),删除对象拥有的方法或者特征

最新文章

  1. 你所不知道的setTimeout
  2. 常用兼容浏览器js
  3. HDU 1564 Play a game(巴什博弈)
  4. NCPC 2015 October 10, 2015 Problem D
  5. protocol buffer
  6. 图集cancelButtonIndex,发送通知简洁写法
  7. How can I style a JavaFX SplitMenuButton in CSS
  8. Ubuntu ENet 的下载和编译
  9. 简单http笔记
  10. shell 中函数放回字符串问题
  11. php接收二进制数据流转换成图片
  12. 快速构建Windows 8风格应用22-MessageDialog
  13. 百度地图API的自动定位和搜索功能(移动端)
  14. Android Weekly Notes Issue #253
  15. [转]微信小程序实现图片上传功能
  16. LVS结合keepalive
  17. 用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)
  18. JS数据的基本类型
  19. [Wannafly挑战赛28][B msc和mcc][预处理+枚举]
  20. 找不到类SimpleJdbcTemplate ParameterizedRowMapper cannot be resolved

热门文章

  1. Windows+Idea安装Hadoop开发环境
  2. 如何设计出和 ASP.NET Core 中 Middleware 一样的 API 方法?
  3. R3 HOOK OpenProcess 的问题
  4. Codlility---MinPerimeterRectangle
  5. abp(net core)+easyui+efcore仓储系统——定义仓储并实现 (四)
  6. List集合总结,对比分析ArrayList,Vector,LinkedList
  7. C++标准库(体系结构与内核分析)(侯捷第一讲)
  8. 基于STM32F429和Cube的主从定时器多通道输出固定个数的PWM波形
  9. resolv.conf 的超时(timeout)与重试(attempts)机制
  10. JavaScript原型和原型链( prototype 与 __proto__ )