1.定义
- 在日常生活中,自省(introspection)是一种自我检查行为
- 在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么,它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力
- 例如python、Ruby、object-C,C++都有自省的能力,在这里的C++的自省的能力最弱,只能知道是什么类型,而像python可以知道是什么类型,还有什么属性
2.python中比较常见的自省机制(函数用法)
**dir()**查看某个变量是什么,方法有什么
**type()**查看对象类型是什么
**hasattr(s,’’,’’)**查看s对象是否有某个属性,属性写为字符串
setattr(object,name,value) 修改object的属性name,值为value
getattr(object,name,value) 获取object的属性name,值为value
delattr(object,name,value) 删除某个属性
isinstance(object,name,value) 判断对象的是否是某个类型
通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性