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

1.Python的自省机制

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

 

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

(1)dir([obj]):

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

举例来说:

 

(2)hasattr(obj, attr):

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

(3)getattr(obj, attr):

 

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


(4)setattr(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  天涯海角路  阅读(389)  评论(0)    收藏  举报