关于python的自省机制
什么是自省?
在日常生活中,自省(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的自省机制相关推荐
- python的几种重要机制(垃圾回收机制,猴子补丁,反射机制,自省机制)
python垃圾回收机制 垃圾回收机制要解决的问题 内存泄漏 悬空指针 引用计数 定义 环形链表中所存放数据的相同点和不同点 无法解决循环引用问题 标记清除 原理: 存在查找活动对象效率低下的问题 隔 ...
- Python强大的自省机制
何为自省 在计算机编程领域里,自省是一种能力,是通过一定机制在程序运行时获知对象的类型及对象的内部结构,Python的自省能力还是很强大的,因为Python中一切皆对象,我们不仅可以获取对象的类型,还 ...
- python的自省到底有什么用
自省是什么? 但从字面意义上来看,自省可以理解为自我反省的一个意思,我第一次理解这个词还是在小学课本上的神农尝百草中,神农的身体是透明的,吃下任何草药都可以看到其药效释放的过程. 而在python中说 ...
- 深入探讨Python的import机制:实现远程导入模块 | CSDN博文精选
来源 | Python编程时光(ID:Python-Time) 所谓的模块导入,是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用. 也许你看到这个标题,会说我怎么会发这么基础的文章? 与 ...
- 关于R和Python的安全机制
关于R和Python的安全机制 对于Python: >>> x = [1,2,3,4] >>> y = x >>> x[0] = 100 > ...
- python 释放变量所指向的内存_通俗易懂的Python垃圾回收机制及内存管理
Python垃圾回收机制及内存管理 内存管理: 先定义一个变量 name='wxl' 那么python会在内存中开辟一小块区域存放"wxl",此时变量的值是我们真正想要存储的,wx ...
- python是不是特别垃圾-python垃圾回收机制
python中有自动内存回收机制,一般情况不需要程序员来处理,面试时被大佬问到了,记录一下.没有画图,推荐读参考的第一篇博文 gc方式1:引用计数 若此对象无其他对象引用,则立马回收掉 优点:简单.实 ...
- python是不是特别垃圾-谈谈python垃圾回收机制
什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回收起来. 在坐的各位都没有女朋友对吧,那难以想象你们的房间会是一个什么样子,可能会有很多垃圾,很凌乱,自己也不收拾. ...
- python是不是特别垃圾-深度解析Python垃圾回收机制(超级详细)
我们知道,目前的计算机都采用的是图灵机架构,其本质就是用一条无限长的纸带,对应今天的存储器.随后在工程学的推演中,逐渐出现了寄存器.易失性存储器(内存)以及永久性存储器(硬盘)等产品.由于不同的存储器 ...
- python垃圾回收离职_谈谈python垃圾回收机制
什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回收起来. 在坐的各位都没有女朋友对吧,那难以想象你们的房间会是一个什么样子,可能会有很多垃圾,很凌乱,自己也不收拾. ...
最新文章
- NOIP模拟 蛋糕(DP+Dilworth定理)
- css中font-family的中文字体
- vue上传图片组件(支持拖拽文件夹上传)
- python实现将文件内容按照某一列内容的大小值重新排序_Python数据分析入门教程(四):数值操作...
- Python中用input()和print()体现输入输出重定向
- 用Python写一个将Python2代码转换成Python3代码的批处理工具
- Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组
- 飞畅科技-国内老牌工业以太网交换机品牌
- 第一类修正贝塞尔函数的C语言实现
- CAS实现单点登录SSO执行原理探究超详细
- 华为光猫上线流程、注册失败、常见语音故障处理
- c语言模拟uart协议的收发
- GEE|影像可视化|导出分类结果图像
- 7步学会在Windows下上架iOS APP流程
- am57xx Damo根文件加载过程
- Android初级基础知识复习(十八) —— 自定义通知栏
- 华为p40pro什么时候能用上鸿蒙系统,华为P40 PRO+5G+鸿蒙系统!华为2020年最期待的手机?...
- 达沃时代的VNAS为NAS使用提供一种新可能
- Google Android开发入门与实战 视频教程 源代码 游戏应用开发 传送门
- 掌握可视化设计流程这4步就够了