面向对象高级特性之--自省机制

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) 判断对象的是否是某个类型
通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性

发布了36 篇原创文章 · 获赞 0 · 访问量 284

猜你喜欢

转载自blog.csdn.net/ANingL/article/details/103932943