2012-11-01 2 views
1

다른 범위에서 사용할 수있는 항목이나 실행중인 특정 클래스의 인스턴스 수 등을 알고 싶습니다.dir()에서 다른 범위를 참조하는 방법

는 달콤한 짧은

print dir() 
def func(): 
    #print dir(magic_keyword) 
    print dir() 
func() 

무엇 "magic_keyword"그 밖의 함수 내에서와에서 동일한 결과를 얻기 위해 사용하는 것입니다 만들려면?

나는 calling dir() in python을 확인하고 있었지만 그 질문은 절대로 답을 얻지 못했습니다.

감사

답변

4

당신은 locals()globals() 기능을 찾고 있습니다.

dir()은 인수없이 locals().keys()을 반환합니다.

globals()은 기본적으로 모듈 범위에서 locals()과 동일하지만 함수에서 모듈 범위 변수를 반환합니다.

>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__'] 
>>> locals().keys() 
['__builtins__', '__name__', '__doc__', '__package__'] 
>>> def foo(): 
...  return locals().keys(), globals().keys() 
... 
>>> foo() 
([], ['__builtins__', '__name__', 'foo', '__doc__', '__package__']) 
관련 문제