python inspect 모듈

11512 단어 python
http://ziliao1.com/Article/Show/DEB3F1CB764989C6913958F2CA350DE2.html
http://geekwei.com/2014/11/26/python-inspect/
유형 및 회원
1. inspect.getmembers(object[, predicate])
두 번 째 매개 변 수 는 보통 수요 에 따라 다음 과 같은 16 가지 방법 을 호출 할 수 있다.
object 의 모든 구성원 에 게 (name, value) 로 구 성 된 목록 을 되 돌려 줍 니 다.
 
inspect. ism dule (object): 모듈 inspect. isclass (object) 인지 여부: 클래스 inspect. ismethod (object) 인지 여부: 방법 (bound method written in python) inspect. isfunction (object) 인지 여부: 함수 (python function, including lambda expression) inspect. isgenerator function (object): python 생 성기 함수 inspect. isgenerator (object) 인지 여부: 생 성기 inspect. istraceback (object) 일 까요? traceback inspect. isframe (object) 일 까요? frame inspect. iscode (object) 일 까요? code inspect. isbuildin (object) 일 까요? built - in 함수 나 built - in 방법 inspect. isroutine (object) 일 까요? 사용자 정의 또는 built - in 함수 나 방법 inspect. isabstract (object) 일 까요?: 추상 적 인 기본 클래스 inspect. ismethoddescriptor (object) 인지 여부: 방법 식별 자 inspect. isdatadescriptor (object) 인지 여부: 디지털 식별 자 인지, 디지털 식별 자 는get__ 와set__속성;보통name__와doc__속성 inspect. isgetsetdescriptor (object): getset descriptor inspect. ismemberdescriptor (object) 인지 여부: member descriptor 인지 여부
inspect 의 getmembers () 방법 은 대상 (module, class, method 등) 의 다음 속성 을 가 져 올 수 있 습 니 다. 
Type
Attribute
Description
Notes
module
__doc__
documentation string
 
 
__file__
filename (missing for built-in modules)
 
class
__doc__
documentation string
 
 
__module__
name of module in which this class was defined
 
method
__doc__
documentation string
 
 
__name__
name with which this method was defined
 
 
im_class
class object that asked for this method
(1)
 
im_func or __func__
function object containing implementation of method
 
 
im_self or __self__
instance to which this method is bound, or None
 
function
__doc__
documentation string
 
 
__name__
name with which this function was defined
 
 
func_code
code object containing compiled function bytecode
 
 
func_defaults
tuple of any default values for arguments
 
 
func_doc
(same as __doc__)
 
 
func_globals
global namespace in which this function was defined
 
 
func_name
(same as __name__)
 
generator
__iter__
defined to support iteration over container
 
 
close
raises new GeneratorExit exception inside the generator to terminate the iteration
 
 
gi_code
code object
 
 
gi_frame
frame object or possibly None once the generator has been exhausted
 
 
gi_running
set to 1 when generator is executing, 0 otherwise
 
 
next
return the next item from the container
 
 
send
resumes the generator and “sends” a value that becomes the result of the current yield-expression
 
 
throw
used to raise an exception inside the generator
 
traceback
tb_frame
frame object at this level
 
 
tb_lasti
index of last attempted instruction in bytecode
 
 
tb_lineno
current line number in Python source code
 
 
tb_next
next inner traceback object (called by this level)
 
frame
f_back
next outer frame object (this frame’s caller)
 
 
f_builtins
builtins namespace seen by this frame
 
 
f_code
code object being executed in this frame
 
 
f_exc_traceback
traceback if raised in this frame, or None
 
 
f_exc_type
exception type if raised in this frame, or None
 
 
f_exc_value
exception value if raised in this frame, or None
 
 
f_globals
global namespace seen by this frame
 
 
f_lasti
index of last attempted instruction in bytecode
 
 
f_lineno
current line number in Python source code
 
 
f_locals
local namespace seen by this frame
 
 
f_restricted
0 or 1 if frame is in restricted execution mode
 
 
f_trace
tracing function for this frame, or None
 
code
co_argcount
number of arguments (not including * or ** args)
 
 
co_code
string of raw compiled bytecode
 
 
co_consts
tuple of constants used in the bytecode
 
 
co_filename
name of file in which this code object was created
 
 
co_firstlineno
number of first line in Python source code
 
 
co_flags
bitmap: 1=optimized | 2=newlocals | 4=*arg |8=**arg
 
 
co_lnotab
encoded mapping of line numbers to bytecode indices
 
 
co_name
name with which this code object was defined
 
 
co_names
tuple of names of local variables
 
 
co_nlocals
number of local variables
 
 
co_stacksize
virtual machine stack space required
 
 
co_varnames
tuple of names of arguments and local variables
 
builtin
__doc__
documentation string
 
 
__name__
original name of this function or method
 
 
__self__
instance to which a method is bound, or None
 
 
2. inspect. getmoduleinfo (path): 이름 을 가 진 원본 그룹 (name, suffix, mode, module type) 을 되 돌려 줍 니 다.
name: 모듈 이름 (패키지 포함 하지 않 음)
      suffix:
      mode: open () 방법의 모드, 예 를 들 어 'r', 'a' 등
      module_type: 정수, 모듈 의 유형 을 대표 합 니 다.
3. inspect. getmodulename (path): path 에 따라 모듈 이름 을 되 돌려 줍 니 다 (패키지 포함 하지 않 음)
 
2. 소스 코드 검색
1. inspect. getdoc (object): object 의 documentation 정 보 를 가 져 옵 니 다.
2. inspect.getcomments(object)
3. inspect. getfile (object): 대상 의 파일 이름 을 되 돌려 줍 니 다.
4. inspect. getmodule (object): object 가 속 한 모듈 이름 을 되 돌려 줍 니 다.
5. inspect. getsourcefile (object): object 의 python 원본 파일 이름 을 되 돌려 줍 니 다.object 는 built - in 모듈, class, mothod 를 사용 할 수 없습니다.
6. inspect. getsourcelines (object): object 의 python 소스 파일 코드 의 내용, 줄 번호 + 코드 줄 을 되 돌려 줍 니 다.
7. inspect. getsource (object): string 형식 으로 object 의 소스 코드 를 되 돌려 줍 니 다.
8. inspect.cleandoc(doc):
 
3. class and functions
1. inspect.getclasstree(classes[, unique])
2. inspect.getargspec(func)
3. inspect.getargvalues(frame)
4. inspect.formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue, join])
5. inspect.formatargvalues(args[, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue, join])
6. inspect. getmro (cls): 원본 형식 으로 cls 클래스 의 기본 클래스 (cls 클래스 포함) 를 되 돌려 줍 니 다. methodresolution 순서 로;보통 cls 클래스 는 요소 의 첫 번 째 요소 입 니 다.
7. inspect.getcallargs(func[, *args][, **kwds]): args 와 kwds 인 자 를 func 인 자 를 연결 하 는 매개 변수 이름 에 연결 합 니 다.bound 방법 에 대해 서도 첫 번 째 매개 변수 (보통 self) 를 해당 하 는 인 스 턴 스 로 연결 합 니 다.사전 을 되 돌려 줍 니 다. 매개 변수 이름과 값 에 대응 합 니 다.
>>> from inspect import getcallargs >>> def f(a, b=1, *pos, **named): ... pass >>> getcallargs(f, 1, 2, 3) {'a': 1, 'named': {}, 'b': 2, 'pos': (3,)} >>> getcallargs(f, a=2, x=4) {'a': 2, 'named': {'x': 4}, 'b': 1, 'pos': ()} >>> getcallargs(f) Traceback (most recent call last): ... TypeError: f() takes at least 1 argument (0 given)

4. 인 터 프 리터 스 택
1. inspect.getframeinfo(frame[, context])
2. inspect.getouterframes(frame[, context])
3. inspect.getinnerframes(traceback[, context])
4. inspect.currentframe()
5. inspect.stack([context])
6. inspect.trace([context])
오늘 RYU 소스 코드 를 보 았 을 때 inspect 모듈 을 발 견 했 습 니 다. RYU 는 이 모듈 의 getmembers 함 수 를 사용 하여 ryu app 의 app 류 를 가 져 왔 습 니 다.
함수 원형 은 inspect. getmembers (object [, predicate]) 입 니 다.
기능: 하나의 Object 에서 predicate 에 맞 는 요소 의 list 를 가 져 옵 니 다. 요소 의 형식 은 (name, value) predicate 는 ismodule (), isclass (), ismethod (), isfunction (), isgenerator function (), isgenerator (), istraceback (), isframe (), iscode (), isbuiltin (), isroutine () 일 수 있 습 니 다.
예 를 하나 보다
import inspect

class C():

    class CC():
        def foo3():
        print "foo3"

    def foo():
        print "foo"
    def foo2():
        print "foo2"
cls = inspect.getmembers(C,inspect.ismethod)
print cls

실 행 된 결 과 는?

좋은 웹페이지 즐겨찾기