2.3심벌 테이블


    AST도 살펴보았으니 이제 심벌 테이블에 대해 이야기해 보겠습니다. 심벌 테이블(symbol table)은 변수나 함수의 이름과 그 속성에 대해 기술해 놓은 테이블입니다.

    test.py를 보면 전역 영역(global)에 변수 a, b, c와 함수 func, print가 있는 것을 알 수 있습니다. 심벌 테이블을 확인해 보겠습니다.

    >>> import symtable

    >>> sym = symtable.symtable(s, 'test.py', 'exec')    #1

    >>> sym.get_name()              #2

    'top'

    >>> sym.get_symbols()         #3

    [<symbol 'func'>, <symbol 'a'>, <symbol 'b'>, <symbol 'c'>, <symbol 'print'>]


    symtable() 함수를 이용해 테이블을 받아오고(#1) 이름을 확인합니다(#2). 이름이 'top'이라고 나오는데 이는 이 테이블이 글로벌 테이블이라는 의미입니다. 클래스 테이블이면 클래스 이름이 나오고, 함수 테이블이면 함수 이름이 나옵니다. 다음으로 get_symbols() 함수로 현재 영역에 있는 심벌을 확인합니다(#3).

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.