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

1.Python的自省机制

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

 

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

1dir([obj]):

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

举例来说:

 

2hasattr(obj, attr):

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

3getattr(obj, attr):

 

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


4setattr(obj, attr, val):

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

 

 

参考学习资料来源于:

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

posted @ 2017-07-26 10:10  天涯海角路  阅读(372)  评论(0)    收藏  举报