知行编程网知行编程网  2022-12-05 11:00 知行编程网 隐藏边栏  4 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python自省是什么的相关知识,希望可以帮到处于编程学习途中的小伙伴

什么是 python 自省

什么是自省?

在日常生活中,自省(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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享