天天看點

inspect python_python的inspect子產品

發現python有個好用的檢查子產品-inspect, 檢視源檔案發現它提供了不少好用的方法:

“”"

Here are some of the useful functions provided by this module:

ismodule(), isclass(), ismethod(), isfunction(), isgeneratorfunction(),

isgenerator(), istraceback(), isframe(), iscode(), isbuiltin(),isroutine() – check object types

getmembers() – get members of an object that satisfy a given condition

getfile(), getsourcefile(), getsource() – find an object’s source code

getdoc(), getcomments() – get documentation on an object

getmodule() – determine the module that an object came from

getclasstree() – arrange classes so as to represent their hierarchy

getargspec(), getargvalues() – get info about function arguments

formatargspec(), formatargvalues() – format an argument spec

getouterframes(), getinnerframes() – get info about frames

currentframe() – get the current stack frame

stack(), trace() – get info about frames on the stack or in a traceback

“”"

舉例:

import inspect

inspect.isbuiltin(abs)

True

import os

inspect.ismodule(os)

True

class C:pass

inspect.isclass(C)

True

class C(object):

def foo(self):

print 'here is foo'

def bez(self):

print 'here is bez'

inspect.getmembers(C, inspect.ismethod)

[('bez', "<"unbound method C.bez">"), ('foo', "<"unbound method C.foo">")]

上面要是不加inspect.ismethod的話,會将對象的所有預設屬性都列出來

其他方法就一一列舉