python获取对象信息模块inspect
前⾔
inspect模块可以⽤来获取对象的信息,对象可以是类,⽅法。本⽂中将主要介绍inspect模块中的getmembers()⽅法。getmembers()
def getmembers(object, predicate=None)
Return all members of an object as (name, value) pairs sorted by name. Optionally, only return members that satisfy a given predicate.
返回⼀个对象的所有成员,以(name, value)的⽅式,通过predicate参数可以有选择性地返回结果。
参数:
* object 对象,可以是类或者⽅法
* predicate ⼀个可选的函数参数,只有被它判定为True的成员,才会被返回,可选为该模块的⼀系列判定对象类型的⽅法:ismodule,isclass,ismethod,isfunction,isbuiltin。
⽰例行尸走肉第四季16集
#!/usr/bin/env python
import inspect
class Cls(object):
def__init__(lf):
pass
def foo(lf):
print'here is foo'
def bez(lf):
print'here is bez'
初一英语试题>isb是什么意思>阿空加瓜山
def test(lf):
poper
for i bers(lf, predicate=inspect.ismethod):
southcarolina>早稻田大学排名
if i[0] == 'foo':
i[1]()
print'i[0] is %s' % type(i[0])doyouloveme是什么意思
新年快乐 英文print'i[1] is %s' % type(i[1])
cls = Cls()
cls.foo()
阻挠的意思
cls.bez()
执⾏结果:
PS C:\Project\python> python .\test_inspect.py
here is foo
here is bez
here is foo
i[0] is <type'str'>
i[1] is <type'instancemethod'>
通过⽰例可以看出返回结果(name,value)中,value是⼀个⽅法实例可以被执⾏,执⾏语句是: i[1]() 。