Python dir() 내장 함수

Python 3 설명서에서 발췌

인수 없이 호출하면 현재 로컬 범위의 이름 목록을 반환합니다. 인수가 있으면 해당 객체에 대한 유효한 속성 목록을 반환하려고 시도합니다.

Introduction

Python 의 dir() 함수는 현재 네임스페이스의 이름 목록이나 주어진 객체의 속성을 반환하는 강력한 내장 함수입니다. 일반적으로 객체, 모듈 및 클래스를 검사하고 탐색하는 데 사용되며, 작업할 수 있는 사용 가능한 메서드, 속성 및 이름을 찾는 데 도움이 됩니다.

Syntax

dir([object])
  • object (선택 사항): 속성을 탐색하려는 객체입니다. 제공되지 않으면 현재 네임스페이스의 이름을 반환합니다.

현재 네임스페이스의 이름 탐색

a = 10
b = "Hello"
def my_function():
    pass

print(dir())
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'my_function']

모듈 속성 탐색

import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', ... ]

객체 속성 탐색

class MyClass:
    def __init__(self):
        self.x = 5
        self.y = "Hello"

obj = MyClass()
print(dir(obj))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ... 'x', 'y']

내장 유형과 함께 dir() 사용하기

my_list = [1, 2, 3]
print(dir(my_list))
[..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

dir() 출력 필터링

import math
print([name for name in dir(math) if not name.startswith("__")])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', ... ]

관련 링크