python的自省机制以及dir() | hasattr() | getattr() | setattr()的使用

时间:2022-04-04 21:26:06

1.python的自省机制

在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。整个 Python 语言对自省提供了深入而广泛的支持。实际上,很难想象假如 Python 语言没有其自省特性是什么样子。dir()hasattr()getattr()setattr()都属于python自省机制中的核心函数。

 

2.dir() |hasattr() | getattr() | setattr()的使用

1dir([obj]):

dir()函数是一个python内置函数,可能是 Python自省机制中最著名的部分了。它返回传递给它的任何对象的经过排序的属性名称列表(会有一些特殊的属性不包含在内)。如果不指定对象,则 dir()返回当前作用域中的名称(obj的默认值是当前的模块对象)。

举例来说:

python的自省机制以及dir() | hasattr() | getattr() | setattr()的使用 

2hasattr(obj, attr):

这个方法用于检查obj是否有一个名称为attr的属性,返回一个布尔值。

3getattr(obj, attr):

getattr是一个python内置函数,也是自省机制里面的核心函数,可以返回一个对象的所有属性。调用这个方法将返回obj名称为attr属性值,例如如果attr'bar',则返回obj.bargetattr的返回值是方法属性可以直接调用这个函数。举例如下:

python的自省机制以及dir() | hasattr() | getattr() | setattr()的使用

4setattr(obj, attr, val):

调用这个方法将给obj的名称为attr的属性赋值为val。例如如果attr'bar',则相当于obj.bar = val



参考学习资料来源于:

https://www.ibm.com/developerworks/cn/linux/l-pyint/