什么是自省?
在日常生活中,自省(introspection)是一种自我检查行为。
在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力。
更简单直白的说:内省就是用面向对象语言编写的程序在运行时能够知道对象的类型。简单一句话就是在运行时可以知道对象的类型。
比如python、buby、object-C、c++都有内省能力。其中c++的自省能力最弱。它只能知道它是什么类型,而python可以知道它是什么类型,有什么属性。
理解内省最好的方式是通过例子:Type introspection 这里有各种编程语言的内省例子 (这个链接的例子很重要,你可能很难通过叙述理解什么是内省,但是通过这些例子,看你能看懂)
回到Python,Python中比较常见的自省(introspection)机制(函数用法)有: dir(),type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。
dir()
dir() 函数可能是 Python 内省机制中最著名的部分。它返回传递给它的任何对象的属性名称的排序列表。如果未指定对象,则 dir() 返回当前范围内的名称。让我们将 dir() 函数应用于关键字模块,看看它揭示了什么:
>>> import keyword
>>> dir(keyword)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'iskeyword', 'kwlist', 'main']
type()
type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。它通过返回类型对象来做到这一点,可以将这个类型对象与 types 模块中定义的类型相比较:
>>> type(42)<class 'int'>
>>> type([])<class 'list'>
isinstance()
可以使用 isinstance() 函数测试对象,以确定它是否是某个特定类型或定制类的实例:
>>> isinstance("python", str)
True
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python诗歌如何创建项目12/08
- ♥ 如何在python中下载numpy08/20
- ♥ Python 是计算机 2 级考试的可选项目吗?09/27
- ♥ 为什么python文件要加utf-811/16
- ♥ Python如何将图片转为字符12/21
- ♥ Pycharm在python中的快捷键及用法01/04
内容反馈