Python自省机制
1.什么是内省?
在日常生活中,自省是自我检查的行为。 内省是指对自己的思想,感觉,动机和行为的检查。
在计算机程序设计中,自省是指检查某事物以确定它是什么,它知道什么以及它能够做什么的能力。有时也叫类型内省,是在运行时进行的一种对象检测机制。我们可以通过内省来获取一个对象的所有信息,比如这个对象的类型,其中包含哪些属性等等。
本文介绍了Python编程语言的自省功能。 Python对自省的支持在整个语言中广泛深入。 实际上,很难想象没有Python的自省功能。
Python 实现自省功能的主要函数(方法)是 dir()
、type()
、isinstance()
、inspect模块
等
class A(object):
pass
class B(A):
"""
我是B,我继承A
"""
pass
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
2. dir() 函数
dir()是内省机制中的一个重要内置函数。这个函数可以将一个对象的所有属性以字符串列表的形式返回。
b = B()
print("dir 函数:", dir(b))
print("B对象 :", B.__dict__)
print("b对象 :", b.__dict__