파이썬 dir() 함수란?
파이썬의 내장 함수 dir()는 특정 모듈에 정의된 이름들을 정렬된 문자열 리스트 형태로 반환하는 도구입니다. 반환되는 리스트에는 해당 모듈 안에 포함된 모든 변수, 함수, 그리고 서브모듈의 이름이 담겨 있습니다.
이 함수를 활용하면 모듈의 내부 구조를 한눈에 파악할 수 있어, 처음 접하는 라이브러리를 탐색하거나 디버깅을 할 때 매우 유용합니다. 다음은 그 기본적인 사용 예제입니다.
사용 예제
아래 코드는 파이썬 표준 내장 모듈인 math에 dir()을 적용한 예제입니다.
#!/usr/bin/python # 내장 모듈 math 임포트 import math content = dir(math) print(content)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']
출력 결과에서 볼 수 있듯이, 리스트에는 삼각함수(sin, cos, tan), 지수·로그 함수(exp, log), 상수(pi, e) 등 math 모듈이 제공하는 모든 이름이 알파벳 순으로 정렬되어 들어 있습니다.
여기서 밑줄로 시작하는 특수 문자열 변수들은 각각 다음과 같은 의미를 가집니다.
- __name__: 모듈의 이름을 나타냅니다.
- __file__: 해당 모듈이 로드된 파일의 경로(파일명)를 나타냅니다.
- __doc__: 모듈의 docstring(문서화 문자열)이 저장되어 있어 모듈 설명을 확인할 수 있습니다.
이처럼 dir() 함수는 인자 없이 호출하면 현재 스코프에 정의된 이름 목록을 반환하고, 모듈 객체를 인자로 전달하면 해당 모듈의 이름 목록을 반환하는 등 상황에 따라 유연하게 활용할 수 있는 강력한 내성(introspection) 도구입니다.