什么是自省?

在日常生活中,自省(introspection)是一种自我检查行为。

在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力。

说的更简单直白一点:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是,运行时能够获知对象的类型。***

例如python, buby, object-C, c++都有自省的能力,这里面的c++的自省的能力最弱,只能够知道是什么类型,而像python可以知道是什么类型,还有什么属性。

最好的理解自省就是通过例子: Type introspection 这里是各种编程语言中自省(introspection)的例子(这个链接里的例子很重要,也许你很难通过叙述理解什么是introspection,但是通过这些例子,一下子你就可以理解了)

回到Python,Python中比较常见的自省(introspection)机制(函数用法)有: dir(),type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。

dir()
 dir() 函数可能是 Python 自省机制中最著名的部分了。它返回传递给它的任何对象的属性名称经过排序的列表。如果不指定对象,则 dir() 返回当前作用域中的名称。让我们将 dir() 函数应用于 keyword 模块,并观察它揭示了什么:
 
 type()
 type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。它通过返回类型对象来做到这一点,可以将这个类型对象与 types 模块中定义的类型相比较:
 

关于python的自省机制相关推荐

  1. python的几种重要机制(垃圾回收机制,猴子补丁,反射机制,自省机制)

    python垃圾回收机制 垃圾回收机制要解决的问题 内存泄漏 悬空指针 引用计数 定义 环形链表中所存放数据的相同点和不同点 无法解决循环引用问题 标记清除 原理: 存在查找活动对象效率低下的问题 隔 ...

  2. Python强大的自省机制

    何为自省 在计算机编程领域里,自省是一种能力,是通过一定机制在程序运行时获知对象的类型及对象的内部结构,Python的自省能力还是很强大的,因为Python中一切皆对象,我们不仅可以获取对象的类型,还 ...

  3. python的自省到底有什么用

    自省是什么? 但从字面意义上来看,自省可以理解为自我反省的一个意思,我第一次理解这个词还是在小学课本上的神农尝百草中,神农的身体是透明的,吃下任何草药都可以看到其药效释放的过程. 而在python中说 ...

  4. 深入探讨Python的import机制:实现远程导入模块 | CSDN博文精选

    来源 | Python编程时光(ID:Python-Time) 所谓的模块导入,是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用. 也许你看到这个标题,会说我怎么会发这么基础的文章? 与 ...

  5. 关于R和Python的安全机制

    关于R和Python的安全机制 对于Python: >>> x = [1,2,3,4] >>> y = x >>> x[0] = 100 > ...

  6. python 释放变量所指向的内存_通俗易懂的Python垃圾回收机制及内存管理

    Python垃圾回收机制及内存管理 内存管理: 先定义一个变量 name='wxl' 那么python会在内存中开辟一小块区域存放"wxl",此时变量的值是我们真正想要存储的,wx ...

  7. python是不是特别垃圾-python垃圾回收机制

    python中有自动内存回收机制,一般情况不需要程序员来处理,面试时被大佬问到了,记录一下.没有画图,推荐读参考的第一篇博文 gc方式1:引用计数 若此对象无其他对象引用,则立马回收掉 优点:简单.实 ...

  8. python是不是特别垃圾-谈谈python垃圾回收机制

    什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回收起来. 在坐的各位都没有女朋友对吧,那难以想象你们的房间会是一个什么样子,可能会有很多垃圾,很凌乱,自己也不收拾. ...

  9. python是不是特别垃圾-深度解析Python垃圾回收机制(超级详细)

    我们知道,目前的计算机都采用的是图灵机架构,其本质就是用一条无限长的纸带,对应今天的存储器.随后在工程学的推演中,逐渐出现了寄存器.易失性存储器(内存)以及永久性存储器(硬盘)等产品.由于不同的存储器 ...

  10. python垃圾回收离职_谈谈python垃圾回收机制

    什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回收起来. 在坐的各位都没有女朋友对吧,那难以想象你们的房间会是一个什么样子,可能会有很多垃圾,很凌乱,自己也不收拾. ...

最新文章

  1. NOIP模拟 蛋糕(DP+Dilworth定理)
  2. css中font-family的中文字体
  3. vue上传图片组件(支持拖拽文件夹上传)
  4. python实现将文件内容按照某一列内容的大小值重新排序_Python数据分析入门教程(四):数值操作...
  5. Python中用input()和print()体现输入输出重定向
  6. 用Python写一个将Python2代码转换成Python3代码的批处理工具
  7. Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
  8. 飞畅科技-国内老牌工业以太网交换机品牌
  9. 第一类修正贝塞尔函数的C语言实现
  10. CAS实现单点登录SSO执行原理探究超详细
  11. 华为光猫上线流程、注册失败、常见语音故障处理
  12. c语言模拟uart协议的收发
  13. GEE|影像可视化|导出分类结果图像
  14. 7步学会在Windows下上架iOS APP流程
  15. am57xx Damo根文件加载过程
  16. Android初级基础知识复习(十八) —— 自定义通知栏
  17. 华为p40pro什么时候能用上鸿蒙系统,华为P40 PRO+5G+鸿蒙系统!华为2020年最期待的手机?...
  18. 达沃时代的VNAS为NAS使用提供一种新可能
  19. Google Android开发入门与实战 视频教程 源代码 游戏应用开发 传送门
  20. 掌握可视化设计流程这4步就够了

热门文章

  1. 早这么讲运算放大器的开环增益,我现在都是高手了
  2. 破解软件以及奇奇怪怪的网站集合
  3. 色环在线计算机,多功能电子计算软件(eTools)
  4. HTML网页的基本结构
  5. 网易严选App感受Weex开发
  6. matlab 误差椭圆,第十章 误差椭圆.doc
  7. Openwrt 安全模式failsafe分析
  8. mail163邮箱官网如何注册?
  9. 9x9九宫格java_9x9九宫格数字填写规律
  10. TCL电视禁止第三方安装软件?如何远程给安卓智能电视强制安装安卓所有软件?