文章图片
文章图片
文章图片
自省是什么?
但从字面意义上来看 , 自省可以理解为自我反省的一个意思 , 我第一次理解这个词还是在小学课本上的神农尝百草中 , 神农的身体是透明的 , 吃下任何草药都可以看到其药效释放的过程 。
而在python中说白了就相当于自己就是神农 , 可以查看自己身体的各个部位(类 , 属性 , 方法等)
为什么我们要使用自省?
自省说到底其实就是一种检查机制 , 像神农一样 , 去判断事物是什么 , 有什么用 。
而在计算机中更加明显 , 我们需要在程序运行中能获知对象的类型能力 , 这种能力就是自省 。
那么自省怎么使用呢?
python中有4个最为常用的自省机制函数 , 我称之为四神柱各有各的用处 。
分别是dir() , type() , hasattr() , isinstance()
dir能够以列表形式返回所有的属性名称 , 通过dir可以对一个对象的属性进行遍历 , 从而对指定的属性进行操作 。
type能够返回数据类型 , 帮助我们进行一个判断 , 进行不同分支的操作 。
hasattr能够确定一个对象有没有指定的属性 。 虽然同样可以通过dir进行遍历查找 , 但是如果只是找确定少数的属性没有必要进行多余的遍历 , 可以通过hasattr查找 , 也可以通过getattr() 。
isinstance()能够帮我们判断实例对象和类是否相等 , 为什么有了type而又要有isinstance呢 , 这是因为type() 不会认为子类是一种父类类型 , 不考虑继承关系 , 而isinstance考虑到了 , 因此的判断对象类型是否相同时优先使用isinstance 。
当然了python除了内置的函数可以帮助我们自省意外还有内置的模块inspect可以帮助我们对对象进行检查 。
该模块提供了4种主要的功能:类型检查、获取源代码、检查类与函数、检查解释器的调用堆栈 。
【Python|python的自省到底有什么用】有兴趣的小伙伴可以去python的文档看看哈 。
- 副董事长|京东方A董秘回复:公司与全球数千家供应商保持着良好的合作关系
- 电池|vivoY55s,能有效解决你的续航焦虑!
- 加盟行业|原来加盟行业是这么玩的!
- 京东|适合过年送长辈的数码好物,好用不贵+大牌保障,最后一个太实用
- 儿童教育|首个播放量破 100 亿的 YouTube 视频诞生,竟然是儿歌
- 苹果|国内首款支持苹果HomeKit的智能门锁发布:iPhone一碰即开门
- 小米科技|预算只有两三千买这三款,颜值性能卓越,没有超高预算的用户看看
- 苹果|苹果最巅峰产品就是8,之后的产品,多少都有出现问题
- 普莉希拉|祖籍徐州的普莉希拉,嫁全球第5富豪扎克伯格,坐拥6530亿被说丑
- 攻克|打破日本垄断!售价7亿元的设备被中企攻克,已开始量产